Page MenuHomePhabricator

terminology on tty: switching from and to tty freezes screen(s): Trying to set a Framebuffer of improper size !!
Open, NormalPublic

Description

starting terminology on tty1 works, even with 3 screens. however when i switch to another tty and then back, the current image just freezes and i get the following error messages from terminology:

WRN<23815>:ecore_drm lib/ecore_drm/ecore_drm_fb.c:183 ecore_drm_fb_set() Trying to set a Framebuffer of improper size !!

terminology --version
Version: 0.9.1

efl
Version: 1.17.0-195.2
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Redwood XT [Radeon HD 5670/5690/5730] (prog-if 00 [VGA controller])
	Subsystem: PC Partner Limited / Sapphire Technology Device e166
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR+ <PERR- INTx-
	Latency: 0, Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 27
	Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
	Region 2: Memory at fc200000 (64-bit, non-prefetchable) [size=128K]
	Region 4: I/O ports at 2000 [size=256]
	[virtual] Expansion ROM at fc240000 [disabled] [size=128K]
	Capabilities: <access denied>
	Kernel driver in use: radeon
	Kernel modules: radeon

Screens:
1x 1920x1080
2x 1280x1024
billiob triaged this task as High priority.May 14 2016, 3:32 AM

this smells like you are running older version of efl. Ecore_Drm has been deprecated and all elementary windows now use Ecore_Drm2, so you should not be getting any Ecore_Drm errors.

@devilhorns as stated it was efl Version: 1.17.0-195.2. with 1.17.2-202.1 it's the same.

but yes, this error message is only present in

efl/src/lib/ecore_drm/ecore_drm_fb.c:             WRN("Trying to set a Framebuffer of improper size !!");

the efl package is build via opensuse build with this spec which states the package is downloaded from here:

http://download.enlightenment.org/rel/libs/efl/efl-1.17.2.tar.xz

the complete build log is here. it includes the flags used, packages used etc. should it read under "engines" not drm but drm2? or is there something else wrong on why the deprecated ecore_drm is used?

[  127s] ------------------------------------------------------------------------
[  127s] efl 1.17.2
[  127s] ------------------------------------------------------------------------
[  127s] 
[  127s] Configuration...: profile=release os=linux-gnu
[  127s]   EFL API Set...: both
[  127s]   CPU Extensions: x86_64 (+mmx +sse3)
[  127s]   System Feature: coroutine=ucontext +inotify +atfile_source +ipv6
[  127s]   Threads.......: POSIX (+spinlocks +barrier +affinity +setname +__thread)
[  127s]   Cryptography..: openssl
[  127s]   X11...........: xlib
[  127s]   OpenGL........: full 
[  127s]   C++11.........: yes
[  127s]   JavaScript....: none
[  127s]   JavaScript flg: 
[  127s] Eina............: yes (+systemd-journal unwind=no)
[  127s] Eo..............: yes (+eo-id)
[  127s] Eolian..........: yes (+cxx)
[  127s] Emile...........: yes (crypto=openssl)
[  127s] Eet.............: yes
[  127s] Evas............: yes (-lua-old +fontconfig +fribidi +harfbuzz +cserve -tile-rotate dither-mask=big -hyphen)
[  127s]   Engines.......: buffer=static +fb -psl1ght -gl-cocoa -gl-sdl -software-gdi -software-ddraw -wayland-egl +wayland-shm +drm -gl-drm +software-xlib +gl-xlib
[  127s]   Image Loaders.: bmp=static eet=static generic=static +gif ico=static jpeg=static -jp2k pmaps=static png=static psd=static tga=static +tiff wbmp=static -webp xpm=static tgv=static dds=static
[  127s] Ecore...........: yes (+systemd-daemon +glib -g-main-loop -libuv)
[  127s] Ecore_Con.......: yes (-cares +local-sockets +abstract-sockets resolver=dns.c +systemd-daemon)
[  127s] Ecore_File......: yes
[  127s] Ecore_IMF.......: yes (-ibus -scim +xim +wayland)
[  127s] Ecore_X.........: xlib (-xpresent -gesture +xinput2 +xinput22)
[  127s] Ecore_SDL.......: no
[  127s] Ecore_Wayland...: yes
[  127s] Ecore_Wl2.......: yes
[  127s] IVI-Shell.......: no
[  127s] Ecore_Buffer....: no ()
[  127s] Ecore_FB........: yes (-tslib)
[  127s] Ecore_Audio.....: yes (-alsa +pulseaudio +sndfile -coreaudio)
[  127s] Ecore_Avahi.....: yes (-avahi-client)
[  127s] Ecore_Evas......: yes (+extn +ews +fb +drm -gl-drm -psl1ght -opengl-cocoa -software-sdl -opengl-sdl +wayland-shm -wayland-egl -software-gdi -software-ddraw +software-x11 +opengl-x11)
[  127s] Ector...........: yes
[  127s] Eeze............: yes (+libmount -tizen)
[  127s] EPhysics........: yes
[  127s] Edje............: yes (+physics +multisense -lua-old)
[  127s] Emotion.........: yes (+v4l2 +xine -gstreamer +gstreamer1 -libvlc generic=static)
[  127s] Ethumb..........: yes
[  127s] Ethumb_Client...: yes
[  127s] Elua............: yes
[  127s] Tests...........: make check (inexplicitly enabled)
[  127s] Examples........: make examples (make install-examples)
[  127s] Documentation...: no
[  127s] Compilation.....: make (or gmake)
[  127s]   CPPFLAGS......: 
[  127s]   CFLAGS........: -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -g -Wno-address
[  127s]   CXXFLAGS......: -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -g
[  127s]   LDFLAGS.......: 
[  127s]   EFLJS_CXXFLAGS: 
[  127s]   
[  127s] Installation....: make install (as root if needed, with 'su' or 'sudo')
[  127s]   prefix........: /usr
[  127s]   dbus units....: /usr/share/dbus-1/services
[  127s]   systemd units.: /usr/lib/systemd/user

the terminology package is build from here. the build log is here.

[   44s] ------------------------------------------------------------------------
[   44s] terminology 0.9.1
[   44s] ------------------------------------------------------------------------
[   44s] 
[   44s] Compilation................: make (or gmake)
[   44s]   CPPFLAGS.................: 
[   44s]   CFLAGS...................: -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g
[   44s]   LDFLAGS..................:   -lelementary -lefl -leina -lpthread -leet -levas -lecore -lecore_evas -lecore_file -lecore_input -ledje -leo -lethumb_client -lemotion -lecore_imf -lecore_con -leldbus -lefreet -lefreet_mime -lefreet_trash -leio -ldl -lm -leina -lpthread -leet -levas -lecore -lecore_evas -lecore_file -ledje -lemotion -lecore_input -lecore_imf -lecore_imf_evas -lecore_ipc -lefreet -lethumb_client  
[   44s] 
[   44s] Installation...............: make install (as root if needed, with 'su' or 'sudo')
[   44s]   prefix...................: /usr
[   44s] 
[   44s] Features:
[   44s]   dbus................: yes
[   44s]   gettext.............: yes
ProhtMeyhet added a comment.EditedJul 17 2016, 2:36 PM

@devilhorns from what i gather drm2 is commit 3c50101f73d0f53e6947eea4294f3b03fb2ad919 ? so it's only in master and not in any release version yet, with elf-1.17.2 being the latest?

drm2 isn't in 1.17.2:
https://git.enlightenment.org/core/efl.git/log/?h=v1.17.2
https://git.enlightenment.org/core/efl.git/tree/src/lib?h=v1.17.2

git summary also only prints 1.17.2 being the latest tag:
https://git.enlightenment.org/core/efl.git/

@ProhtMeyhet Ohh ok. I overlooked where you mentioned it was EFL 1.17.

Yes, Ecore_Drm2 is in git master right now. Also, Ecore_Drm has been deprecated in git master. When EFL 1.18 comes out, Ecore_Drm should no longer be used.

Likely this issue has already been resolved with moving to Ecore_Drm2, but I will test it with git master. If there is a proble, we can hopefully still get a fix in before 1.18 gets released.

@ProhtMeyhet Can I ask How you are starting Terminology on the tty ? Are you exporting any environment variables ?

@ProhtMeyhet Ok, I just tested this here (running terminology directly from tty) and it works fine when VT switching with Ecore_Drm2 so apparently whatever the issue was has been sorted out in upstream efl already. I would suggest waiting for the 1.18 release if possible .. if not, then I can spend the time to dig into 1.17 to find & hopefully fix the issue ... but seeing as Ecore_Drm(1) is being deprectated anyway, I'd rather not spend the time on it if this is avoidable.

devilhorns lowered the priority of this task from High to Pending on user input.Jul 19 2016, 11:46 AM

@devilhorns no worries from me there, but i think you should document this in that error message:

Trying to set a Framebuffer of improper size !!
Please report this error at: https://phab.enlightenment.org/T3438

or something alike and add an info message that DRM1 is deprecated.

ProhtMeyhet raised the priority of this task from Pending on user input to Normal.Jul 29 2016, 1:12 PM

@devilhorns well, that got worse with efl 18.

first: instead of occupying all screens, terminology only occupies one screen.

second: screen still freezes and i have to use sysrq keys (r for switching keyboard to XLATE mode) to get back control. if i then switch to another tty where neither X, wayland nor terminoly is running i can switch back to the terminology one. however it blinks but does not accept mouse nor keyboard input.

bottom line is: i can't switch from X directly to terminology tty, i have to go to another tty and then back to terminology. plus: terminology somehow overrides ctrl + fN switches, so i have to use sysrq keys.

some error messages i gathered:

<721>: eina_safety lib/eina/eina_log.c: 1756 eina_log_domain_unregister() safety check failed: domain >= 0 is false (copied by hand)

ERR<2221>:ecore_evas modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c:219 ecore_evas_wayland_shm_new_internal() Failed to connect to Wayland Display (null)
ERR<2221>:eldbus lib/eldbus/eldbus_core.c:1021 _connection_get() Error connecting to bus of type 1. error name: org.freedesktop.DBus.Error.NotSupported error message: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
ERR<2221>:eina_safety lib/eldbus/eldbus_core.c:1084 eldbus_connection_get() safety check failed: conn == NULL
ERR<2221>:eo lib/eo/eo.c:710 _eo_add_internal_start() Object of class 'Elm_Sys_Notify_Dbus' - Error while constructing object
ERR<2221>:eina_safety lib/eldbus/eldbus_core.c:1263 eldbus_connection_unref() safety check failed: conn == NULL
CRI<2221>:elementary lib/elementary/elm_sys_notify.c:175 _elm_sys_notify_servers_set() Failed to create notification server
ERR<2221>:eldbus lib/eldbus/eldbus_core.c:1021 _connection_get() Error connecting to bus of type 1. error name: org.freedesktop.DBus.Error.NotSupported error message: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
ERR<2221>:eina_safety lib/eldbus/eldbus_core.c:1084 eldbus_connection_get() safety check failed: conn == NULL
ERR<2221>:eina_safety lib/eldbus/eldbus_object.c:192 eldbus_object_get() safety check failed: conn == NULL

I've been experiencing this issue too. This is a pretty consistent bug for me. Steps to reproduce:

  • Boot system as normal.
  • Instead of logging in at GDM, switch to a TTY.
  • enter terminology to launch Terminology session
  • switch to another TTY.
  • switch back to the Terminology TTY. System is unresponsive.

I can't type anything in Terminology, the mouse cursor won't move anymore, I can't switch to other TTYs anymore, I can't even toggle my keyboard NumLock.

I'm testing Terminology 0.9.99 and EFL 1.18.4, on Fedora 25 Workstation x86_64.

zmike edited projects, added Restricted Project; removed efl.Jun 11 2018, 6:59 AM
bu5hm4n edited projects, added efl: display system; removed Restricted Project.Jun 11 2018, 9:14 AM