public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH] open_posix_testsuite/.../aio_red/7-1.c: fix race at exit
@ 2012-12-05 11:49 Jan Stancek
  2012-12-05 11:53 ` Jan Stancek
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Jan Stancek @ 2012-12-05 11:49 UTC (permalink / raw)
  To: ltp-list

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 <jstancek@redhat.com>
---
 .../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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-12-06 15:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-05 11:49 [LTP] [PATCH] open_posix_testsuite/.../aio_red/7-1.c: fix race at exit Jan Stancek
2012-12-05 11:53 ` Jan Stancek
2012-12-05 13:01 ` Wanlong Gao
2012-12-06  9:30 ` chrubis
     [not found]   ` <50C06733.2000903@cn.fujitsu.com>
2012-12-06 15:15     ` chrubis
     [not found]       ` <50C0B851.4050106@cn.fujitsu.com>
2012-12-06 15:25         ` chrubis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox