rodent hangs at startup because dbh can't lock it!
Basic desktop applications
Brought to you by:
edscott
I build rodent and its dependencies on a 64bit system with glib1.2.10 glibc2.20 gcc4.6.4.
All items were clone from the git repository and no errors were introduced during the build and install.
but when I issue rodent or (rodent-fm, ...) It hangs at start up and I get this in terminal :
*** <dbh>: DBH: sdbh_lock() unable to unlock semaphore for /home/r004/.cache/rfm/dbh/mime.sfx.cache64.dbh-18939 (Connection timed out), proceeding on
*** <dbh>: DBH: sdbh_lock() unable to unlock semaphore for /home/r004/.cache/rfm/dbh/mime.sfx.cache64.dbh-18939 (Connection timed out), proceeding on
*** <dbh>: DBH: sdbh_lock() unable to unlock semaphore for /home/r004/.cache/rfm/dbh/mime.sfx.cache64.dbh-18939 (Connection timed out), proceeding on
...
..
.
Can't use rodent because of it.
Seems like you have a stale named semaphore. In Linux, named semaphores are in /dev/shm and have the prefix "sem". You can also see active semaphores with the command "ipcs -s".
libdbh uses semaphores to avoid multiprocess access collisions, and they are created and destroyed on the fly. You should see them appear and dissappear. But if one remains, then it is stale. ¿Do you have any stale semaphores? ¿What happens if you remove them with rm?
As you can see the list is empty and i tried it over and over and as fast and slow .
my fstab
So I am out of ideas. Please advise me on how to proceed.
Thanks
Last edit: r004 2015-01-13
after a reboot my /dev/shm was empty and I issued rodent command in terminal. the same error and rodent-fm hanged.
after that ls /dev/shm showed:
Ok. Apparently the problem is not with the semaphore from libdbh. To find out where rodent-fm is hanging, please configure both librfm and rodent-fm with the option "--with-core". Recompile and install and run. Once the process hangs, do a "kill -SEGV pid" where pid is the process id. This should appear in the title bar, separated from the path with a dash. The final "C" in the title bar indicates that core dumps are enabled.
This will terminate the hanged process and dump a "core" file in your home dir. Then do a "gdb rodent-fm core" to load the core file with the GNU debugger. At the gdb> prompt, type "where" or "bt". This will show us where the deadlock occurs and make a fix possible.
I installed a basic gdb from my linux own package manager (I don't know if the options we needed are selected for gdb install like expat and ... . if we need gdb to build with special option please tell me and I provide all the options I can select for gdb install here and you point out what we want.)
Last edit: r004 2015-01-18
Please provide information regarding Linux distro and version so I may try and reproduce the problem. The above traceback apparently indicate some issue with the gmodule library.