Closed pohly closed 10 years ago
While I am at it: murphyd refuses to start when I remove the (useless) mdb.select { "audio_owner" } from the murphy-ref.lua.
It says: E: Failed to enable resolver autoupdate. then quits.
And one more question related to the Python test script: if the resource name is something that hasn't been defined, the script just hangs waiting for a status change forever. Is that intentional? Wouldn't it be better to report that as an error, ideally by throwing an error in request()?
Thanks for the bug report. I'll take a look at the D-Bus segfault. I think the autoupdate enabling failure would warrant a completely new issue!
Thanks, I'll take a look at that. My initial guess is that it bails out if the generated resolver ruleset is empty, but I'll take a closer look.
Cheers, kli
On 10 Dec 2013, at 22:02, Patrick Ohly notifications@github.com wrote:
While I am at it: murphyd refuses to start when I remove the (useless) mdb.select { "audio_owner" } from the murphy-ref.lua.
It says: E: Failed to enable resolver autoupdate. then quits.
— Reply to this email directly or view it on GitHub.
Alright, I think I found the bug. Could you try the latest master to see if the problem persists? Thanks.
Yes, master seems to work now even when compiled with -O2.
Ok, I'm closing this issue.
murphyd segfaults here while using the D-Bus API. "Here" is some kind of SUSE flavor (not sure exactly, ask if it matters; it has g++ (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012]), murphyd compiled from source (latest as of today, fb72a9f1) with "-g -O2".
Looks like a jump to invalid memory in gdb in valgrind:
Program received signal SIGSEGV, Segmentation fault. 0x000000000066c450 in ?? () (gdb) where
0 0x000000000066c450 in ?? ()
1 0x0000000000000000 in ?? ()
==25826== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2) vex amd64->IR: unhandled instruction bytes: 0x6D 0x65 0x6D 0x6F 0x74 0x6F 0x6F 0x0 vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0 vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 ==25833== valgrind: Unrecognised instruction at address 0x793dbc0. ==25833== at 0x793DBC0: ??? ==25833== Your program just tried to execute an instruction that Valgrind ==25833== did not recognise. There are two possible reasons for this. ==25833== 1. Your program has a bug and erroneously jumped to a non-code ==25833== location. If you are running Memcheck and you just saw a ==25833== warning about a bad jump, it's probably your program's fault. ==25833== 2. The instruction is legitimate but Valgrind doesn't handle it, ==25833== i.e. it's Valgrind's fault. If you think this is the case or ==25833== you are not sure, please let us know and we'll try to fix it.
It works when I compile with "-g", i.e. without optimization.
To reproduce: $ murphyd -f -c murphy-lua.conf & $ kill-murphy.py
Setup: