On Thu, Sep 10, 2015 at 10:49:17AM +0200, Lukas Slebodnik wrote: > On (10/09/15 10:43), Lukas Slebodnik wrote: > >On (28/07/14 10:18), Simo Sorce wrote: > >>On Wed, 2014-07-23 at 09:01 +0200, Lukas Slebodnik wrote: > >>> On (09/07/14 18:21), Jurica Stanojkovic wrote: > >>> > > >>> >Hello, > >>> > > >>> >Package sssd_1.11.5.1-1 on Debian FTBFS for mips and mipsel. > >>> >https://buildd.debian.org/status/fetch.php?pkg=sssd&arch=mips&ver=1.11.5.1-1&stamp=1399675946 > >>> >https://buildd.debian.org/status/fetch.php?pkg=sssd&arch=mipsel&ver=1.11.5.1-1&stamp=1399663454 > >>> > > >>> >dyndns_test_ok is failing with following log: > >>> >[ RUN ] dyndns_test_ok(Tue Jul 8 15:53:55:004476 2014) [sssd] > >>> >[be_nsupdate_args] (0x0200): (Tue Jul 8 15:53:55:004521 2014) [sssd] > >>> >[child_handler_setup] (0x2000): nsupdate auth type: GSS-TSIGSetting up > >>> >signal handler up for pid [21397](Tue Jul 8 15:53:55:004693 2014) > >>> >[sssd] [__wrap_execv] (0x0200): nsupdate success test case(Tue Jul 8 > >>> >15:53:55:004825 2014) [sssd] [__wrap_execv] (0x1000): Child exiting with > >>> >status 0(Tue Jul 8 15:53:55:005275 2014) [sssd] [child_handler_setup] > >>> >(0x2000): Signal handler set up for pid [21397](Tue Jul 8 > >>> >15:54:55:837623 2014) [sssd] [write_pipe_handler] (0x0020): write failed > >>> >[32][Broken pipe].(Tue Jul 8 15:54:55:837801 2014) [sssd] > >>> >[nsupdate_child_stdin_done] (0x1000): Sending nsupdate data complete(Tue > >>> >Jul 8 15:54:55:837869 2014) [sssd] [nsupdate_child_stdin_done] > >>> >(0x0040): Sending nsupdate data failed [32]: Broken pipe(Tue Jul 8 > >>> >15:54:55:837947 2014) [sssd] [be_nsupdate_done] (0x0040): nsupdate child > >>> >execution failed [1432158228]: Dynamic DNS update failed(Tue Jul 8 > >>> >15:54:55:837985 2014) [sssd] [dyndns_test_ok] (0x1000): Child request > >>> >returned [1432158228]: Unknown error 14321582280x555d0014 != > >>> >0../src/tests/cmocka/test_dyndns.c:222: error: Failure![ FAILED ] > >>> >dyndns_test_okChild part has finished before the child handler was > >>> >created. > >>> > > >>> >I have created and attached a patch which is workaround for this issue. > >>> >Could someone please take a look and comment this? > >>> > > >>> >Thank you! > >>> > > >>> >Sincerely, > >>> >Jurica > >>> > > >>> > >>> >From d6162e90d89b744153bff068488a555047a9004e Mon Sep 17 00:00:00 2001 > >>> >From: Jurica Stanojkovic <jurica.stanojko...@rt-rk.com> > >>> >Date: Wed, 9 Jul 2014 17:57:55 +0200 > >>> >Subject: [PATCH] Workaround for dyndns_test_ok failiure on mips(el). > >>> > Child part has finished before the child handler was created. > >>> > > >>> >--- > >>> bump. > >>> > >>> Could someone review this patch. > >>> I was helping with this problem on IRC. I don't want to give ACK. > >> > >>Well the commit message does not say why a sleep of 2 seconds is needed, > >>can you shed a light on it ? > >> > >Updated version is attached. > > > >LS > > >From 80c25a192f2a410e18248f848a2256803e997c6b Mon Sep 17 00:00:00 2001 > >From: Lukas Slebodnik <lsleb...@redhat.com> > >Date: Thu, 10 Sep 2015 10:42:02 +0200 > >Subject: [PATCH] dyndns-tests: Simulate job in wrapped execv > > > >The function be_nsupdate_send fork a child for execution of the utility > >nsupdate. > > > >The child process builds nsupdate args in the function > >be_nsupdate_args and then execute the utility. > > > >Meanwhile the parent process register handlers for child and timeout > >for canceling the long lasting child. > > nsupdate_child_send -> child_handler_setup > > > >You can see in following log file that the wrapped version of execv > >function might be very fast and therefore parent can register handlers > >after finishing child. This is a reason why there is a child timeout. > > > >(10:18:48:556001 2015) [sssd] [be_nsupdate_args] (0x0200): nsupdate auth > >type: GSS-TSIG > >(10:18:48:556126 2015) [sssd] [__wrap_execv] (0x0200): nsupdate success test > >case > >(10:18:48:556200 2015) [sssd] [__wrap_execv] (0x1000): Child exiting with > >status 0 > >(10:18:48:557218 2015) [sssd] [child_handler_setup] (0x2000): Setting up > >signal handler up for pid [3957] > >(10:18:48:560987 2015) [sssd] [child_handler_setup] (0x2000): Signal handler > >set up for pid [3957] > >(10:18:50:608520 2015) [sssd] [nsupdate_child_timeout] (0x0020): Timeout > >reached for dynamic DNS update > >(10:18:50:681525 2015) [sssd] [be_nsupdate_done] (0x0040): nsupdate child > >execution failed [1432158233]: Dynamic DNS update timed out > >(10:18:50:687031 2015) [sssd] [dyndns_test_ok] (0x1000): Child request > >returned [1432158233]: Unknown error 1432158233 > > > >The patch simulate a work in wrapped function with small delay. > >It should be enough time for the parent process to registering a child. > > > >Based on patch from Jurica Stanojkovic <jurica.stanojko...@rt-rk.com> > >Thank you. > > > >Resolves: > >https://fedorahosted.org/sssd/ticket/2283 > >--- > > src/tests/cmocka/test_dyndns.c | 1 + > > 1 file changed, 1 insertion(+) > > > >diff --git a/src/tests/cmocka/test_dyndns.c b/src/tests/cmocka/test_dyndns.c > >index > >691378ee6edc5b0238adc8404ea0a433ae3cf907..dc3d19f59cf586e3ef4ed12e99192c639c4e45d5 > > 100644 > >--- a/src/tests/cmocka/test_dyndns.c > >+++ b/src/tests/cmocka/test_dyndns.c > >@@ -70,6 +70,7 @@ void __wrap_execv(const char *path, char *const argv[]) > > case MOCK_NSUPDATE_OK: > > DEBUG(SSSDBG_FUNC_DATA, "nsupdate success test case\n"); > > err = 0; > >+ sleep(2); > Actually, > I wanted to use smaller timeout so we can avoid issues with real timeouts. > > another version is attached. > > LS
> From 7e4ec4a744c5714cb7d6c9a22646d5635e8da0c8 Mon Sep 17 00:00:00 2001 > From: Lukas Slebodnik <lsleb...@redhat.com> > Date: Thu, 10 Sep 2015 10:42:02 +0200 > Subject: [PATCH] dyndns-tests: Simulate job in wrapped execv > > The function be_nsupdate_send fork a child for execution of the utility > nsupdate. > > The child process builds nsupdate args in the function > be_nsupdate_args and then execute the utility. > > Meanwhile the parent process register handlers for child and timeout > for canceling the long lasting child. > nsupdate_child_send -> child_handler_setup > > You can see in following log file that the wrapped version of execv > function might be very fast and therefore parent can register handlers > after finishing child. This is a reason why there is a child timeout. > > (10:18:48:556001 2015) [sssd] [be_nsupdate_args] (0x0200): nsupdate auth > type: GSS-TSIG > (10:18:48:556126 2015) [sssd] [__wrap_execv] (0x0200): nsupdate success test > case > (10:18:48:556200 2015) [sssd] [__wrap_execv] (0x1000): Child exiting with > status 0 > (10:18:48:557218 2015) [sssd] [child_handler_setup] (0x2000): Setting up > signal handler up for pid [3957] > (10:18:48:560987 2015) [sssd] [child_handler_setup] (0x2000): Signal handler > set up for pid [3957] > (10:18:50:608520 2015) [sssd] [nsupdate_child_timeout] (0x0020): Timeout > reached for dynamic DNS update > (10:18:50:681525 2015) [sssd] [be_nsupdate_done] (0x0040): nsupdate child > execution failed [1432158233]: Dynamic DNS update timed out > (10:18:50:687031 2015) [sssd] [dyndns_test_ok] (0x1000): Child request > returned [1432158233]: Unknown error 1432158233 > > The patch simulate a work in wrapped function with small delay. > It should be enough time for the parent process to registering a child. > > Based on patch from Jurica Stanojkovic <jurica.stanojko...@rt-rk.com> > Thank you. I never could reproduce the failures myself, but this patch is obviously not harmful and both you and Jurica confirmed it helps, so fine, ACK. _______________________________________________ sssd-devel mailing list sssd-devel@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/sssd-devel