mtest-gmonitor.py segfauls in latest lp:ntrack revno. 235
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ntrack |
Fix Released
|
High
|
Unassigned |
Bug Description
after building like:
../configure --prefix=....
make
make check
make install
... mtest-gmonitor.py segfaults because no backend is found
====
python gobject/
no backend found in: ../../modules/
no backend found finale.
no rfds func found, but called
Segmentation fault
===
Program received signal SIGSEGV, Segmentation fault.
ntrack_
69 if (self->pack_size <= self->pack_len + 1) {
(gdb) bt
#0 ntrack_
#1 0x00616c99 in ntrack_g_source_new () at ../../glib/
#2 0x00616dbf in ntrack_
#3 0x00616e54 in ntrack_g_source_add (func=0x612f90 <_event_callback>, data=0x82f4518) at ../../glib/
#4 0x00612ef6 in ntrack_
#5 0x004c35df in g_type_
#6 0x004a7885 in ?? () from /usr/lib/
#7 0x00612e76 in ntrack_
#8 0x004a5e27 in g_object_newv () from /usr/lib/
#9 0x004a6508 in g_object_new () from /usr/lib/
#10 0x00612c07 in ntrack_
#11 0x0060ecd7 in _wrap_ntrack_
#12 0x080ddd39 in call_function (f=<unknown at remote 0x829f148>, throwflag=0) at ../Python/
#13 PyEval_EvalFrameEx (f=<unknown at remote 0x829f148>, throwflag=0) at ../Python/
#14 0x080dfbb2 in PyEval_EvalCodeEx (co=0xb7fcc5c0, globals=
{'glib': <module at remote 0xb7f9356c>, 'pyntrack': <module at remote 0xb7f93adc>, 'monitor': None, '__builtins__': <module at remote 0xb7f93074>, '__file__': '../gobject/
...
===
needs to be fixed before release ...
many things seem to be at problem here:
1. the "look for backend in multiple directories" seems to be broken. hence it doesnt even find the backend after a make instal
2. ntrack.c module loading code assumes quite static directory structures to look for backends.
3. ntrack.c module loading code has no way to find the cmdline used to run the script. Hence, it has no way to guess the $builddir directory of the run binary if its != cwd
4. the mtest-gmonitor.py is not even copied to $builddir hierarchy ... hence even a well implemented mechanism that would expect the source copy to be available in the $builddir would fail.
... lets see how robust i can make this while allowing executation from the $builddir and the $installdir