source ID not found
Patrick Ohly
patrick.ohly at intel.com
Tue Feb 4 08:29:34 UTC 2014
On Tue, 2014-02-04 at 11:22 +1300, Jane Atkinson wrote:
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0xb7b7b15a in g_logv () from /lib/i386-linux-gnu/libglib-2.0.so.0
> (gdb) where
> #0 0xb7b7b15a in g_logv () from /lib/i386-linux-gnu/libglib-2.0.so.0
> #1 0xb7b7b273 in g_log () from /lib/i386-linux-gnu/libglib-2.0.so.0
> #2 0xb7b72cbc in g_source_remove () from
> /lib/i386-linux-gnu/libglib-2.0.so.0
> #3 0xb7de2d99 in SyncEvo::ForkExecParent::~ForkExecParent
> (this=0x8213518, __in_chrg=<optimized out>) at
> /data/runtests/work/sources/syncevolution/src/syncevo/ForkExec.cpp:125
Thanks, that's it.
I think I know why the source tag is invalid in that destructor. Here's
a patch which should fix it:
diff --git a/src/syncevo/ForkExec.cpp b/src/syncevo/ForkExec.cpp
index 31009b8..aabffed 100644
--- a/src/syncevo/ForkExec.cpp
+++ b/src/syncevo/ForkExec.cpp
@@ -333,11 +333,14 @@ gboolean ForkExecParent::outputReady(GIOChannel *source,
// Will remove event source from main loop.
cont = false;
- // Free channel.
+ // Free channel and forget source tag (source will be free
+ // when returning false).
if (source == me->m_out) {
me->m_out = NULL;
+ me->m_outID = 0;
} else {
me->m_err = NULL;
+ me->m_errID = 0;
}
g_io_channel_unref(source);
Can compile from source and try that out?
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
More information about the SyncEvolution
mailing list