On Sun, Apr 27, 2014 at 02:47:50PM +0200, David Suárez wrote: > Source: obexd > Version: 0.48-2 > Severity: serious > Tags: jessie sid > User: debian...@lists.debian.org > Usertags: qa-ftbfs-20140426 qa-ftbfs > Justification: FTBFS on amd64 > > Hi, > > During a rebuild of all packages in sid, your package failed to build on > amd64. > > Relevant part (hopefully): > > > > /gobex/null_io: OK > > /gobex/basic: OK > > /gobex/ref_unref: OK > > /gobex/test_disconnect: OK > > /gobex/test_recv_connect_stream: OK > > /gobex/test_recv_connect_pkt: OK > > > > (./unit/test-gobex:17157): GLib-CRITICAL **: Source ID 11 was not found > > when attempting to remove it > > /bin/bash: line 5: 17157 Trace/breakpoint trap ${dir}$tst > > /gobex/test_send_connect_stream: FAIL: unit/test-gobex > > /gobex/test_conn_req: OK > > > > (./unit/test-gobex-transfer:17162): GLib-CRITICAL **: Source ID 7 was not > > found when attempting to remove it > > /bin/bash: line 5: 17162 Trace/breakpoint trap ${dir}$tst > > /gobex/test_conn_rsp: FAIL: unit/test-gobex-transfer > > =================== > > make[2]: *** [check-TESTS] Error 12 of 5 tests failed > > > > =================== > > make[1]: *** [check-am] Error 2 > > dh_auto_test: make -j1 check returned exit code 2
Attached patch fixes this issue. Regards, -- Hector Oron
From 8464a28d7b9d6612c29bd5d5bf8e3f3bdb5f13a6 Mon Sep 17 00:00:00 2001 From: Colin Watson <cjwat...@ubuntu.com> Date: Mon, 6 Jan 2014 12:04:14 +0000 Subject: [PATCH] unit: Fix test failures with glib 2.39.0 glib 2.39.0 made this change: - g_source_remove() will now throw a critical in the case that you try to remove a non-existent source. We expect that there is some code in the wild that will fall afoul of this new critical but considering that we now reuse source IDs, this code is already broken and should probably be fixed. This patch fixes the test suite to keep better track of whether sources have already been removed and avoid double-removals. Forwarded: http://marc.info/?l=linux-bluetooth&m=138901175212889&w=2 Last-Update: 2014-01-06 Index: b/unit/test-gobex-transfer.c =================================================================== --- a/unit/test-gobex-transfer.c +++ b/unit/test-gobex-transfer.c @@ -1800,7 +1800,8 @@ g_source_remove(timer_id); g_io_channel_unref(io); - g_source_remove(io_id); + if (!d.io_completed) + g_source_remove(io_id); g_obex_unref(obex); g_assert_no_error(d.err); @@ -2055,7 +2056,8 @@ g_source_remove(timer_id); g_io_channel_unref(io); - g_source_remove(io_id); + if (!d.io_completed) + g_source_remove(io_id); g_obex_unref(obex); g_assert_no_error(d.err); Index: b/unit/test-gobex.c =================================================================== --- a/unit/test-gobex.c +++ b/unit/test-gobex.c @@ -230,7 +230,7 @@ GError *gerr = NULL; GIOChannel *io; GIOCondition cond; - guint io_id, timer_id, test_time; + guint timer_id, test_time; GObex *obex; create_endpoints(&obex, &io, transport_type); @@ -239,7 +239,7 @@ g_assert_no_error(gerr); cond = G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL; - io_id = g_io_add_watch(io, cond, send_rsp_func, &gerr); + g_io_add_watch(io, cond, send_rsp_func, &gerr); mainloop = g_main_loop_new(NULL, FALSE); @@ -257,7 +257,6 @@ g_source_remove(timer_id); g_io_channel_unref(io); - g_source_remove(io_id); g_obex_unref(obex); g_assert_no_error(gerr); @@ -461,6 +460,7 @@ GError *err; const guint8 *buf; gsize len; + gboolean completed; }; static gboolean rcv_data(GIOChannel *io, GIOCondition cond, gpointer user_data) @@ -500,6 +500,7 @@ done: g_main_loop_quit(mainloop); + r->completed = TRUE; return FALSE; } @@ -541,7 +542,8 @@ g_source_remove(timer_id); g_io_channel_unref(io); - g_source_remove(io_id); + if (!r.completed) + g_source_remove(io_id); g_obex_unref(obex); g_assert_no_error(r.err); @@ -656,7 +658,8 @@ g_source_remove(timer_id); g_io_channel_unref(io); - g_source_remove(io_id); + if (!r.completed) + g_source_remove(io_id); g_obex_unref(obex); g_assert_no_error(r.err); Index: b/unit/util.c =================================================================== --- a/unit/util.c +++ b/unit/util.c @@ -189,5 +189,6 @@ failed: g_main_loop_quit(d->mainloop); + d->io_completed = TRUE; return FALSE; } Index: b/unit/util.h =================================================================== --- a/unit/util.h +++ b/unit/util.h @@ -41,6 +41,7 @@ guint id; gsize total; GMainLoop *mainloop; + gboolean io_completed; }; #define TEST_ERROR test_error_quark()
signature.asc
Description: Digital signature