Page MenuHomePhabricator

Dialog picker frozen
Closed, ResolvedPublic

Description

This commit prevents the refreshing of Ordissimo dialog boxes (EFL), called by non EFL applications.
Image 1 the application is frozen.

remove the commit, image 2 normal behavior.

The test was performed on E and TWM.

thierry1970 triaged this task as High priority.

??? all this does is spew out backtraces on error logs in addition to the log. these were on by default in releases .. but not in git master... so you'd have had this behavior in releases anyway???

I understand what you're saying, and I too was amazed!
I spent two days looking for the bug, I removed E, checked the java version of the main app (which has the dialog box problem), ect...
The difference is the version of EFL.
the Ordissimo dialog boxes worked in the EFL-1.22.4 version and not in the ELL-1.24.2.
I made git bisect (I join you the trace):

git bisect start
# good: [fd12569d764c81e5df897b5ee70bfcc27aa6a9ab] release: Update NEWS and bump version for 1.22.6 release
git bisect good fd12569d764c81e5df897b5ee70bfcc27aa6a9ab
# bad: [71caee07baafdc3877035ac65a5ad986a77aceb3] release: Update NEWS and bump version for 1.24.1 release
git bisect bad 71caee07baafdc3877035ac65a5ad986a77aceb3
# good: [54d5481d02686e539b55173dc70be1acae5520da] release: Update NEWS and bump version for 1.22.0 release
git bisect good 54d5481d02686e539b55173dc70be1acae5520da
# good: [59709bc90776261aee66e1f3d527fca0e5fbe151] theme: migrate all efl,anim,activate (and similar) signals to efl,state,animation,activated
git bisect good 59709bc90776261aee66e1f3d527fca0e5fbe151
# good: [59709bc90776261aee66e1f3d527fca0e5fbe151] theme: migrate all efl,anim,activate (and similar) signals to efl,state,animation,activated
git bisect good 59709bc90776261aee66e1f3d527fca0e5fbe151
# good: [1507ade7875ad485cedb49c0d32ce510685bd0e1] eolian_mono: add namespace to extension methods of ItemFactory
git bisect good 1507ade7875ad485cedb49c0d32ce510685bd0e1
# good: [e1b70206331dae6dea027e578459a8779e20ba4c] efl/gesture: correctly filter tap events based on the processing touch point
git bisect good e1b70206331dae6dea027e578459a8779e20ba4c
# bad: [3feacb2b66c1768ab55b0496385266bf879a7657] docs: Fix Eina Core Group
git bisect bad 3feacb2b66c1768ab55b0496385266bf879a7657
# bad: [765c5c2a0b2c28c4b8497b28ffbd64f159a446d6] efl.ui.textbox: proxy for efl.ui.scrollable interface
git bisect bad 765c5c2a0b2c28c4b8497b28ffbd64f159a446d6
# bad: [765c5c2a0b2c28c4b8497b28ffbd64f159a446d6] efl.ui.textbox: proxy for efl.ui.scrollable interface
git bisect bad 765c5c2a0b2c28c4b8497b28ffbd64f159a446d6
# good: [d60587c0989c0cbd8cbb17a0a19854f00495a702] Efl.Ui.Image: Modify current frame to start at 1
git bisect good d60587c0989c0cbd8cbb17a0a19854f00495a702
# good: [149042a3baa0c6df7c5ea8b0f549d465a5fb6975] evas_textblock: replace evil tabs with spaces
git bisect good 149042a3baa0c6df7c5ea8b0f549d465a5fb6975
# bad: [12854eac34d8d1decc3c61867d242887a288ac6e] efl-wl: move keymap functions to eo
git bisect bad 12854eac34d8d1decc3c61867d242887a288ac6e
# bad: [f8299e054234d73ba27b0bf7a6a07120279c92f1] exactness: factor out _printf() handling into common part
git bisect bad f8299e054234d73ba27b0bf7a6a07120279c92f1
# good: [f257401a4f7a3c6ee922bbf7cc311793b5345b1d] canvas proxy: fix a missing case that proxy not updated properly.
git bisect good f257401a4f7a3c6ee922bbf7cc311793b5345b1d
# good: [b98f8bdbe4296f902708d90db2bd2604219db34e] edje_cc - provide better error info log on part id out of range
git bisect good b98f8bdbe4296f902708d90db2bd2604219db34e
# bad: [5c8942bf393f239d9860cb663d1bc6bcbee368e8] eina log bt - on by default always if unwind found
git bisect bad 5c8942bf393f239d9860cb663d1bc6bcbee368e8
# first bad commit: [5c8942bf393f239d9860cb663d1bc6bcbee368e8] eina log bt - on by default always if unwind found

all i can imagine is it triggers a tiny timing change as it has to spew out that backtrace, which means actually this can happen on any sufficiently slow machine too... there is an environment var to disable/enable the bt

export EINA_LOG_BACKTRACE=0

i think will turn it off... can you try that too? does disabling bt's at runtime make it work?

btw - does it fix itself if you open another window and drag it over this or alt+right mouse on the window to pop up a menu wondering if another draw by compositor makes it fix things up or its the src pixmap somehow still containing junk... or is it something else?

1 > export EINA_LOG_BACKTRACE=0
Indeed it works!

2 - drag and alt+right
No effect

hmmm i really can't see how that commit itself is at fault. it's some timing thing. the problem is... timing then can happen on any device anywhere and any time given kernel scheduling decisions, load, speed of hardware etc. ... and if this is the case i need to be able to reproduce it consistently to hunt it down - if i even can.

wait.. i need to know. is that box in the middle above he window in the background.. is that another window just with no border? override-redirect window or regular window just with borderless mwm hints?

Yes the borders are removed:

LC_ALL=C xprop
__E_WINDOW_MAPPED(CARDINAL) = 1
WM_STATE(WM_STATE):
		window state: Normal
		icon window: 0x0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MODAL
__E_ATOM_DESKTOP_FILE(UTF8_STRING) = "/usr/share/applications/textissimo.desktop"
E_ZONE_GEOMETRY(CARDINAL) = 0, 0, 1920, 1080
__E_WINDOW_ZONE(CARDINAL) = 0
__E_WINDOW_MANAGED(CARDINAL) = 1
__E_WINDOW_DESK(CARDINAL) = 7, 0
WM_NORMAL_HINTS(WM_SIZE_HINTS):
		program specified minimum size: 800 by 400
_NET_WM_NAME(UTF8_STRING) = "textissimo"
WM_NAME(UTF8_STRING) = "textissimo"
_E_VIRTUAL_KEYBOARD_STATE(ATOM) = undefined atom # 0x0
_NET_WM_ICON_NAME(UTF8_STRING) = "textissimo"
WM_ICON_NAME(UTF8_STRING) = "textissimo"
WM_CLASS(STRING) = "textissimo", "navigation-ouvrir"
XdndAware(ATOM) = BITMAP
_E_WINDOW_AUX_HINT(STRING) = ""
_E_WINDOW_PROFILE_SUPPORTED(CARDINAL) = 1
_E_DEICONIFY_APPROVE(CARDINAL) = 1
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 33554440
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLIENT_LEADER(WINDOW): window id # 0x2000007
WM_HINTS(WM_HINTS):
		Client accepts input or input focus: True
		Initial state is Normal State.
WM_COMMAND(STRING) = { "navigation-ouvrir", "--class", "textissimo", "-o", "Aprire", "-c", "Annullare", "application/vnd.oasis.opendocument.text", "application/vnd.oasis.opendocument.text-template", "application/vnd.oasis.opendocument.text-web", "application/vnd.oasis.opendocument.text-master", "application/vnd.oasis.opendocument.text-master-template", "application/vnd.sun.xml.writer", "application/vnd.sun.xml.writer.template", "application/vnd.sun.xml.writer.global", "application/msword", "application/vnd.ms-word", "application/x-doc", "application/x-hwp", "application/rtf", "text/rtf", "application/vnd.wordperfect", "application/wordperfect", "application/vnd.lotus-wordpro", "application/vnd.openxmlformats-office", "document.wordprocessingml.document", "application/vnd.ms-word.document.macroenabled.12", "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "application/vnd.ms-word.template.macroenabled.12", "application/vnd.ms-works", "application/vnd.stardivision.writer-global", "application/x-extension-txt", "application/x-t602", "text/plain", "application/vnd.oasis.opendocument.text-flat-xml", "application/x-fictionbook+xml", "application/macwriteii", "application/x-aportisdoc", "application/prs.plucker", "application/vnd.palm", "application/clarisworks", "application/x-sony-bbeb", "application/x-abiword", "application/x-iwork-pages-sffpages", "application/x-mswrite" }
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DIALOG
_NET_WM_PID(CARDINAL) = 16423
WM_CLIENT_MACHINE(STRING) = "ordissimo"

ok. looks like a normal window but i see no mwm hints to make it borderless... if you resize the window does it get fixed up? like alt+middle mouse and drag anywhere? if its a normal client window this should work.

On twm, with the borders, moving and enlarging the window doesn't change anything!

After moving :

After resize:

but does resizing in e fix ti (alt+middle mouse button anywhere resizes a window). twm allowing that window to resize smells to me like java is doing something wrong - not setting min/max size hints to make the window unresizeable...

i wonder if this timing issue is more along the lines of it being on the java side? i don't know for sure but i'm digging for clues. perhaps timing changes just a little where a draw happens ... but when things a re a tiny little bit faster, the draw happens AFTER e showed the window, but if e is slower, it may show after the client draws, thus draws are lost and you end up with "whatever was in the framebuffer at the time" junk in the pixmap. there will be an expose event - or should be. sending fake expose events to that window would be one way to test to see if it responds properly to expose events. the other thing to do would be to record all events and actions happening on that window as it is managed/mapped/shown from the client side and the compositor side. so writing a small tool that can XSendEvent an expose event to a window id (with some geometry) would be an interesting test to see. maybe it's also a timing thing on the client side - it happens to lose an expose event if they come in during this "being managed" timeframe or something.

I'm not sure how to help you?
I started the program:
EINA_LOG_LEVEL=3 myprogram
the filepicker ordissimo does not open!

Below the backtrace

$ myprogram

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f9addbcd98d in write () from target:/lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007f9addbcd98d in write () from target:/lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f9addb64817 in _IO_file_write () from target:/lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f9addb63b62 in ?? () from target:/lib/x86_64-linux-gnu/libc.so.6
#3  0x00007f9addb64f6e in _IO_file_xsputn () from target:/lib/x86_64-linux-gnu/libc.so.6
#4  0x00007f9addb3bcc5 in ?? () from target:/lib/x86_64-linux-gnu/libc.so.6
#5  0x00007f9addb38f25 in vfprintf () from target:/lib/x86_64-linux-gnu/libc.so.6
#6  0x00007f9addbe9009 in __fprintf_chk () from target:/lib/x86_64-linux-gnu/libc.so.6
#7  0x00007f9adf57405d in fprintf (__fmt=0x7f9adf5cf220 "%s\t 0x%llx 0x%llx\n", __stream=0x7f9adde8c520 <_IO_2_1_stderr_>) at /usr/include/x86_64-linux-gnu/bits/stdio2.h:97
#8  _eina_debug_dump_fhandle_bt (f=0x7f9adde8c520 <_IO_2_1_stderr_>, bt=bt@entry=0x7ffde0877970, btlen=<optimized out>) at ../src/lib/eina/eina_debug_bt.c:141
#9  0x00007f9adf583676 in eina_log_print_cb_stderr (args=<optimized out>, data=<optimized out>, fmt=<optimized out>, line=<optimized out>, fnc=<optimized out>, file=<optimized out>, level=<optimized out>, d=<optimized out>)
    at ../src/lib/eina/eina_log.c:2057
#10 0x00007f9adf584431 in eina_log_print_unlocked (domain=7, level=EINA_LOG_LEVEL_ERR, file=0x7f9ae1dbb118 "../src/lib/evas/canvas/evas_object_text.c", fnc=0x7f9ae1dbb520 "_evas_text_efl_text_font_font_size_set", 
    line=<optimized out>, fmt=0x7f9adf5cf4f2 "%s", args=0x7ffde0878a40) at ../src/lib/eina/eina_log.c:1457
#11 0x00007f9adf585aa3 in eina_log_print (domain=7, level=level@entry=EINA_LOG_LEVEL_ERR, file=file@entry=0x7f9ae1dbb118 "../src/lib/evas/canvas/evas_object_text.c", 
    fnc=fnc@entry=0x7f9ae1dbb520 "_evas_text_efl_text_font_font_size_set", line=line@entry=499, fmt=fmt@entry=0x7f9adf5cf4f2 "%s") at ../src/lib/eina/eina_log.c:2261
#12 0x00007f9adf5a10a2 in _eina_safety_error (file=0x7f9ae1dbb118 "../src/lib/evas/canvas/evas_object_text.c", func=0x7f9ae1dbb520 "_evas_text_efl_text_font_font_size_set", line=499, 
    str=0x7f9ae1dbb148 "safety check failed: size <= 0 is true") at ../src/lib/eina/eina_safety_checks.c:83
#13 0x00007f9adfa364bc in efl_text_font_size_set () from target:/usr/lib/x86_64-linux-gnu/libefl.so.1
#14 0x00007f9ae2122ca7 in ?? () from target:/usr/lib/x86_64-linux-gnu/libedje.so.1
#15 0x00007f9ae2099f7f in ?? () from target:/usr/lib/x86_64-linux-gnu/libedje.so.1
#16 0x00007f9ae209c869 in ?? () from target:/usr/lib/x86_64-linux-gnu/libedje.so.1
#17 0x00007f9ae20a088c in ?? () from target:/usr/lib/x86_64-linux-gnu/libedje.so.1
#18 0x00007f9ae212b072 in ?? () from target:/usr/lib/x86_64-linux-gnu/libedje.so.1
#19 0x00007f9ae211d12d in efl_layout_calc_size_min () from target:/usr/lib/x86_64-linux-gnu/libedje.so.1
#20 0x00007f9ae21362e1 in edje_object_size_min_restricted_calc () from target:/usr/lib/x86_64-linux-gnu/libedje.so.1
#21 0x00007f9ae307f175 in ?? () from target:/usr/lib/x86_64-linux-gnu/libelementary.so.1
#22 0x00007f9ae307fd14 in ?? () from target:/usr/lib/x86_64-linux-gnu/libelementary.so.1
#23 0x00007f9ae307a69c in elm_obj_index_level_go () from target:/usr/lib/x86_64-linux-gnu/libelementary.so.1
#24 0x00007f9adea7ef5c in SfLetter::letterDefault (this=0x555d848817c0) at sfletter.cc:135
#25 0x00007f9adea60c11 in SfPrincipal::clear (this=0x555d8481fab0, box=0x0) at sfprincipal.cc:450
#26 0x00007f9adea2c488 in SfMod_Home::openList (this=0x555d84d48100, path=...) at sfmodule_home.cc:153
#27 0x00007f9adea2ccae in SfMod_Home::clickedCB (data=0x555d84d5eb80, item=0x400000002b4a) at sfmodule_home.cc:242
#28 0x00007f9adea252a6 in SfMenu::execCellClicked (this=0x555d847a35a0, data=0x555d84d5eb80, evas=0x4000000297a1, item=0x400000002b4a) at sfmenu.cc:591
#29 0x00007f9adea252e5 in SfMenu::cellClickedCB (data=0x555d84db66b0, evas=0x4000000297a1, item=0x400000002b4a) at sfmenu.cc:599
#30 0x00007f9ae3037623 in ?? () from target:/usr/lib/x86_64-linux-gnu/libelementary.so.1
#31 0x00007f9ae30312cc in elm_obj_gengrid_item_selected_set () from target:/usr/lib/x86_64-linux-gnu/libelementary.so.1
#32 0x00007f9adea2508f in SfMenu::selectItemDefault (this=0x555d847a35a0) at sfmenu.cc:529
#33 0x00007f9adea2c037 in SfMod_Home::work (this=0x555d84d48100) at sfmodule_home.cc:117
#34 0x00007f9adea49e5d in SfPoolModule::notifyCB (msg=0x555d84d48100) at sfpoolmodule.cc:67
#35 0x00007f9ae1944f79 in _ecore_notify_handler (data=0x7f9ac00008c0) at ../src/lib/ecore/ecore_thread.c:279
#36 0x00007f9ae18fd6a0 in _ecore_main_call_flush () at ../src/lib/ecore/ecore.c:1084
#37 0x00007f9ae1940964 in _ecore_pipe_handler_call (len=<optimized out>, buf=0x555d84af0980 "*", p=0x555d8447c810) at ../src/lib/ecore/ecore_pipe.c:591
#38 _ecore_pipe_read (data=0x555d8447c810, fd_handler=<optimized out>) at ../src/lib/ecore/ecore_pipe.c:714
#39 0x00007f9ae190792d in _ecore_call_fd_cb (fd_handler=0x555d8447a500, data=<optimized out>, func=<optimized out>) at ../src/lib/ecore/ecore_private.h:506
#40 _ecore_main_fd_handlers_call (pd=pd@entry=0x555d84474e88, obj=0x4000000002fc) at ../src/lib/ecore/ecore_main.c:2124
#41 0x00007f9ae19082d9 in _ecore_main_loop_iterate_internal (obj=obj@entry=0x4000000002fc, pd=pd@entry=0x555d84474e88, once_only=0) at ../src/lib/ecore/ecore_main.c:2501
#42 0x00007f9ae1908c83 in _ecore_main_loop_begin (obj=obj@entry=0x4000000002fc, pd=pd@entry=0x555d84474e88) at ../src/lib/ecore/ecore_main.c:1210
#43 0x00007f9ae190e6b5 in _efl_loop_begin (obj=0x4000000002fc, pd=0x555d84474e88) at ../src/lib/ecore/efl_loop.c:57
#44 0x00007f9ae190d974 in efl_loop_begin (obj=0x4000000002fc) at src/lib/ecore/efl_loop.eo.c:28
#45 0x00007f9ae1908d67 in ecore_main_loop_begin () at ../src/lib/ecore/ecore_main.c:1295
#46 0x00007f9ade9fe799 in elm_main_open (argc=45, argv=0x7ffde087cd68) at open.cc:282
#47 0x0000555d8326faeb in main (argc=45, argv=0x7ffde087cd68) at main_mini_open.cc:11

$ EINA_LOG_LEVEL=3 myprogram

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007efc1431c98d in write () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007efc1431c98d in write () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007efc142b3817 in _IO_file_write () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007efc142b2b62 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007efc142b3f6e in _IO_file_xsputn () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007efc1428acc5 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x00007efc14287f25 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6
#6  0x00007efc14338009 in __fprintf_chk () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x00007efc15cc305d in fprintf (__fmt=0x7efc15d1e220 "%s\t 0x%llx 0x%llx\n", __stream=0x7efc145db520 <_IO_2_1_stderr_>) at /usr/include/x86_64-linux-gnu/bits/stdio2.h:97
#8  _eina_debug_dump_fhandle_bt (f=0x7efc145db520 <_IO_2_1_stderr_>, bt=bt@entry=0x7ffdc1d770a0, btlen=<optimized out>) at ../src/lib/eina/eina_debug_bt.c:141
#9  0x00007efc15cd2676 in eina_log_print_cb_stderr (args=<optimized out>, data=<optimized out>, fmt=<optimized out>, line=<optimized out>, fnc=<optimized out>, file=<optimized out>, level=<optimized out>, d=<optimized out>)
    at ../src/lib/eina/eina_log.c:2057
#10 0x00007efc15cd3431 in eina_log_print_unlocked (domain=7, level=EINA_LOG_LEVEL_ERR, file=0x7efc1850a118 "../src/lib/evas/canvas/evas_object_text.c", fnc=0x7efc1850a520 "_evas_text_efl_text_font_font_size_set", 
    line=<optimized out>, fmt=0x7efc15d1e4f2 "%s", args=0x7ffdc1d78170) at ../src/lib/eina/eina_log.c:1457
#11 0x00007efc15cd4aa3 in eina_log_print (domain=7, level=level@entry=EINA_LOG_LEVEL_ERR, file=file@entry=0x7efc1850a118 "../src/lib/evas/canvas/evas_object_text.c", 
    fnc=fnc@entry=0x7efc1850a520 "_evas_text_efl_text_font_font_size_set", line=line@entry=499, fmt=fmt@entry=0x7efc15d1e4f2 "%s") at ../src/lib/eina/eina_log.c:2261
#12 0x00007efc15cf00a2 in _eina_safety_error (file=0x7efc1850a118 "../src/lib/evas/canvas/evas_object_text.c", func=0x7efc1850a520 "_evas_text_efl_text_font_font_size_set", line=499, 
    str=0x7efc1850a148 "safety check failed: size <= 0 is true") at ../src/lib/eina/eina_safety_checks.c:83
#13 0x00007efc161854bc in efl_text_font_size_set () from /usr/lib/x86_64-linux-gnu/libefl.so.1
#14 0x00007efc18871ca7 in ?? () from /usr/lib/x86_64-linux-gnu/libedje.so.1
#15 0x00007efc187e8f7f in ?? () from /usr/lib/x86_64-linux-gnu/libedje.so.1
#16 0x00007efc187eb869 in ?? () from /usr/lib/x86_64-linux-gnu/libedje.so.1
#17 0x00007efc187ef88c in ?? () from /usr/lib/x86_64-linux-gnu/libedje.so.1
#18 0x00007efc1887a072 in ?? () from /usr/lib/x86_64-linux-gnu/libedje.so.1
#19 0x00007efc1886c12d in efl_layout_calc_size_min () from /usr/lib/x86_64-linux-gnu/libedje.so.1
#20 0x00007efc188852e1 in edje_object_size_min_restricted_calc () from /usr/lib/x86_64-linux-gnu/libedje.so.1
#21 0x00007efc197ce175 in ?? () from /usr/lib/x86_64-linux-gnu/libelementary.so.1
#22 0x00007efc197ced14 in ?? () from /usr/lib/x86_64-linux-gnu/libelementary.so.1
#23 0x00007efc197c969c in elm_obj_index_level_go () from /usr/lib/x86_64-linux-gnu/libelementary.so.1
#24 0x00007efc151cdc71 in SfLetter::SfLetter (this=0x55fa8223f720, parent=0x400000056a2e) at sfletter.cc:40
#25 0x00007efc151addf0 in SfPrincipal::SfPrincipal (this=0x55fa821dda20, parent=0x40000002295e, actionbar=0x0, win=0x4000000068ee, menu=0x55fa82161540, single=1) at sfprincipal.cc:109
#26 0x00007efc1514c9f2 in launchModule (differ_path=0x7ffdc1d7ad30 "/home/ordissimo/.ordissimo/sfiler/textissimo-old-path.txt", reopen=0x0, single=1) at open.cc:93
#27 0x00007efc1514d723 in elm_main_open (argc=45, argv=0x7ffdc1d7be98) at open.cc:272
#28 0x000055fa7fdd6aeb in main (argc=45, argv=0x7ffdc1d7be98) at main_mini_open.cc:11

well first - try resize your window in e - the java one that is broken. does it redraw correctly after a resize?

The java application refreshes properly.
Is the EFL (Ordissimo) dialog box frozen?
On E I cannot resize the window.
On Twm I can but the result is identical to the image attached yesterday.

$ killall -9 java

closes the java application and allows the EFL (Ordissimo) dialog box to be drawn.

wait... so behind i see a window. it has some wordprocessor like thing. that renders ok. that is a java app? then a dialog window with no borders appears on top. is that a java app too? or an efl dialog box? how is that dialog box shown? have you bound java to efl and use jni to call it or something? the window should be able to be resized in e:

WM_NORMAL_HINTS(WM_SIZE_HINTS):
		program specified minimum size: 800 by 400

so it should be able to get bigger. alt+middle mouse and drag should resize anywhere by default in e. unless you disabled this mouse binding.

i am trying to understand how this textissimo thing is put together... ?

thierry1970 added a comment.EditedFri, Sep 18, 5:59 AM

The application underneath is written in java and includes the bean of libreoffice.
We call our dialog box is in EFL with the code below!

String[] cmd = {"/usr/bin/open-picker-bureautissimo",
    "--class", "textissimo",
    "-o", N_("Open"),
    "-c", N_("Cancel"),
    "image/jpeg", // MIME JPG
    "image/png", // MIME PNG
    "image/bmp", // MIME BMP
    "image/gif", // MIME GIF
};  
    //"-x", "" + windowId,
p = Runtime.getRuntime().exec(cmd);
brInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
fileImg = brInput.readLine().replace("\"", "") ;

open-picker-bureautissimo is a EFL application.

I dismantle our filepicker to locate the problem!

ok. so the problem dialog box is not java and has nothing to do with java other than the java app runs your dialog binary. so we actually have an efl app that is either not redrawing and i know efl will handle exposes right, so forget all of that. if you run that picker binary by hand with the same options does it do the same thing?

I can't make it.
I will start again from efl 1.22 until commit 5c8942bf393f2 by activating the logs.
That should allow me to locate the problem!

hmm so it only happens if launched from the java app? odd. but some race condition. are you sure it doesnt resize? could you share the src of that picker tool?

I've located the commit (D10716) that is causing the problem.
This commit 5c8942bf393f2 only revealed it.

I have indeed noticed since this problem the increase of console logs:

elm,state,inactive elm
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true

well those logs would have been there before, but without bt's now they also have bt's. if they are happening a lot.. this will add overhead as every log needs to also scan a bt and produce it...

thierry1970 added a comment.EditedWed, Sep 23, 5:56 AM

with the previous commit fa1aa10d792,I don't have a log. The file-picker is working normally !

thierry1970 added a comment.EditedWed, Sep 23, 6:17 AM

The problem is summarized here, before, if the arguments were not good, we went out without causing any error.
Now if EINA_LOG_BACKTRACE=0 the application works.

elm,state,inactive elm
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
ERR<16711>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 
_evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
...

Now if EINA_LOG_BACKTRACE=1 the application doesn't work and so do the logs.

ERR<4956>:eina_safety ../src/lib/evas/canvas/evas_object_text.c:499 _evas_text_efl_text_font_font_size_set() safety check failed: size <= 0 is true
## Copy & Paste the below (until EOF) into a terminal, then hit Enter

eina_btlog << EOF
/usr/lib/x86_64-linux-gnu/libeina.so.1	 0x7f6cc0ae3669 0x7f6cc0ab8000
/usr/lib/x86_64-linux-gnu/libeina.so.1	 0x7f6cc0ae4431 0x7f6cc0ab8000
/usr/lib/x86_64-linux-gnu/libeina.so.1	 0x7f6cc0ae5aa3 0x7f6cc0ab8000
/usr/lib/x86_64-linux-gnu/libeina.so.1	 0x7f6cc0b010a2 0x7f6cc0ab8000
/usr/lib/x86_64-linux-gnu/libefl.so.1	 0x7f6cc0f964bc 0x7f6cc0f7b000
/usr/lib/x86_64-linux-gnu/libedje.so.1	 0x7f6cc38c2e37 0x7f6cc3804000
/usr/lib/x86_64-linux-gnu/libedje.so.1	 0x7f6cc3833547 0x7f6cc3804000
/usr/lib/x86_64-linux-gnu/libedje.so.1	 0x7f6cc3836068 0x7f6cc3804000
/usr/lib/x86_64-linux-gnu/libedje.so.1	 0x7f6cc383a93c 0x7f6cc3804000
/usr/lib/x86_64-linux-gnu/libedje.so.1	 0x7f6cc38cb202 0x7f6cc3804000
/usr/lib/x86_64-linux-gnu/libedje.so.1	 0x7f6cc38bd17d 0x7f6cc3804000
/usr/lib/x86_64-linux-gnu/libedje.so.1	 0x7f6cc38d6471 0x7f6cc3804000
/usr/lib/x86_64-linux-gnu/libelementary.so.1	 0x7f6cc4821185 0x7f6cc461b000
/usr/lib/x86_64-linux-gnu/libelementary.so.1	 0x7f6cc4821d24 0x7f6cc461b000
/usr/lib/x86_64-linux-gnu/libelementary.so.1	 0x7f6cc481c6ac 0x7f6cc461b000
/usr/lib/x86_64-linux-gnu/libsfiler.so.0	 0x7f6cbffe033c 0x7f6cbfeb2000
/usr/lib/x86_64-linux-gnu/libsfiler.so.0	 0x7f6cbffc1f39 0x7f6cbfeb2000
/usr/lib/x86_64-linux-gnu/libsfiler.so.0	 0x7f6cbff91370 0x7f6cbfeb2000
/usr/lib/x86_64-linux-gnu/libsfiler.so.0	 0x7f6cbff91a80 0x7f6cbfeb2000
/usr/lib/x86_64-linux-gnu/libsfiler.so.0	 0x7f6cbff8a348 0x7f6cbfeb2000
/usr/lib/x86_64-linux-gnu/libsfiler.so.0	 0x7f6cbff8a387 0x7f6cbfeb2000
/usr/lib/x86_64-linux-gnu/libelementary.so.1	 0x7f6cc47d9633 0x7f6cc461b000
/usr/lib/x86_64-linux-gnu/libelementary.so.1	 0x7f6cc47d32dc 0x7f6cc461b000
/usr/lib/x86_64-linux-gnu/libsfiler.so.0	 0x7f6cbff8a131 0x7f6cbfeb2000
/usr/lib/x86_64-linux-gnu/libsfiler.so.0	 0x7f6cbff90f1f 0x7f6cbfeb2000
/usr/lib/x86_64-linux-gnu/libsfiler.so.0	 0x7f6cbffae713 0x7f6cbfeb2000
/usr/lib/x86_64-linux-gnu/libecore.so.1	 0x7f6cc30ddac9 0x7f6cc307e000
/usr/lib/x86_64-linux-gnu/libecore.so.1	 0x7f6cc3095b20 0x7f6cc307e000
/usr/lib/x86_64-linux-gnu/libecore.so.1	 0x7f6cc30d94b4 0x7f6cc307e000
/usr/lib/x86_64-linux-gnu/libecore.so.1	 0x7f6cc30a047d 0x7f6cc307e000
/usr/lib/x86_64-linux-gnu/libecore.so.1	 0x7f6cc30a0e29 0x7f6cc307e000
/usr/lib/x86_64-linux-gnu/libecore.so.1	 0x7f6cc30a17d3 0x7f6cc307e000
/usr/lib/x86_64-linux-gnu/libecore.so.1	 0x7f6cc30a7205 0x7f6cc307e000
/usr/lib/x86_64-linux-gnu/libecore.so.1	 0x7f6cc30a64c4 0x7f6cc307e000
/usr/lib/x86_64-linux-gnu/libecore.so.1	 0x7f6cc30a18b7 0x7f6cc307e000
/usr/lib/x86_64-linux-gnu/libsfiler.so.0	 0x7f6cbff63c89 0x7f6cbfeb2000
/usr/bin/navigation-ouvrir	 0x558ad2cabafb 0x558ad2cab000
/lib/x86_64-linux-gnu/libc.so.6	 0x7f6cbf0792e1 0x7f6cbf059000
/usr/bin/navigation-ouvrir	 0x558ad2cab9ba 0x558ad2cab000
EOF

To summarize the API (the behaviour) has changed.
I can build without warning but my application has an undefined behavior!

I will try to fix the application

well at least you get a nice backtrace that tells you precisely where the problem is... :)

The application does not use a ".._font_set" function.
I commented all occurrences of the "elm_object_style_set" function in the application.
The application works normally. So it's the Ordissimo (*.edc) theme that has a problem.

The theme that is no longer compatible is the Elm_Index theme.
I'll be able to fix it.
I still modified "src/lib/eina/eina_safety_checks.h", not to fill the log console, when they are not requested.

--- efl-1.24.3.orig/src/lib/eina/eina_safety_checks.h
+++ efl-1.24.3/src/lib/eina/eina_safety_checks.h
@@ -110,15 +110,16 @@ EAPI void _eina_safety_error(const char
 #  define EINA_SAFETY_ERROR(msg) EINA_LOG_ERR("%s", msg)
 # endif
 
-#define EINA_SAFETY_ON_NULL_RETURN(exp)                                   \
-  do                                                                      \
-    {                                                                     \
-       if (EINA_UNLIKELY((exp) == NULL))                                  \
-         {                                                                \
-            EINA_SAFETY_ERROR("safety check failed: " # exp " == NULL");  \
-            return;                                                       \
-         }                                                                \
-    }                                                                     \
+#define EINA_SAFETY_ON_NULL_RETURN(exp)                                       \
+  do                                                                          \
+    {                                                                         \
+       if (EINA_UNLIKELY((exp) == NULL))                                      \
+         {                                                                    \
+            if (EINA_LOG_LEVEL_ERR > 0)                                       \
+                EINA_SAFETY_ERROR("safety check failed: " # exp " == NULL");  \
+            return;                                                           \
+         }                                                                    \
+    }                                                                         \
   while (0)
 
 #define EINA_SAFETY_ON_NULL_RETURN_VAL(exp, val)

There is still the concern of activating the logs which changes the behavior of the application (it no longer appears, with the broken theme provided in attachments).

thierry1970 closed this task as Resolved.Fri, Sep 25, 2:46 AM

I corrected the general Ordissimo theme of the EFL.
The application works correctly again!
I will apply the patch above, I need the logs in development phase, not in production phase.