----- Original Message -----
> From: "Jan Stancek" <[email protected]>
> To: [email protected]
> Sent: Wednesday, 5 December, 2012 12:49:47 PM
> Subject: [LTP] [PATCH] open_posix_testsuite/.../aio_red/7-1.c: fix race at    
> exit

^^ Sorry, there's a typo in subject. "red" -> "read".

> 
> This testcase crashed in about 1/200 of runs on s390x system with 2
> CPUs:
> 
> Core was generated by `./7-1.run-test'.
> Program terminated with signal 11, Segmentation fault.
>   #0  _dl_fini () at dl-fini.c:228
>   228               if (l->l_init_called)
>   (gdb) bt
>   #0  _dl_fini () at dl-fini.c:228
>   #1  0x000003fffd345c62 in __run_exit_handlers (status=<optimized
>   out>, listp=0x3fffd4b4a78 <__exit_funcs>,
>       run_list_atexit=run_list_atexit@entry=true) at exit.c:77
>   #2  0x000003fffd345ca4 in __GI_exit (status=<optimized out>) at
>   exit.c:99
>   #3  0x000003fffd3294e6 in __libc_start_main (main=0x80000b18
>   <main>, argc=<optimized out>, ubp_av=0x3ffff970108,
>       init=<optimized out>, fini=0x80000d4c <__libc_csu_fini>,
>       rtld_fini=0x3fffd50821c <_dl_fini>, stack_end=0x3ffff970050)
>       at libc-start.c:257
>   #4  0x0000000080000a26 in _start ()
>   (gdb) x/1x l
>   0x9fd4f2918:    Cannot access memory at address 0x9fd4f2918
> 
> The crash was presumably caused by race, where variable defined in
> main()
> got out of scope before operation started by aio_read() completed.
> 
> Patched version succesfully made 100000 iterations.
> 
> Signed-off-by: Jan Stancek <[email protected]>
> ---
>  .../conformance/interfaces/aio_read/7-1.c          |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git
> a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/7-1.c
> b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/7-1.c
> index 2d13565..1227db4 100644
> ---
> a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/7-1.c
> +++
> b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/7-1.c
> @@ -70,6 +70,9 @@ int main()
>               exit(PTS_FAIL);
>       }
>  
> +     while (aio_error(&aiocb) == EINPROGRESS)
> +             ;
> +
>       close(fd);
>       printf("Test PASSED\n");
>       return PTS_PASS;
> --
> 1.7.1
> 
> 
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add
> services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> Ltp-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ltp-list
> 

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to