From: Subrata Modak <[email protected]>
Subject: Re: [LTP] [PATCH] Writev06: Fix Error Checking for mmap()
Date: Wed, 18 Mar 2009 14:12:38 +0530

> 
> On Wed, 2009-03-18 at 16:41 +0800, CAI Qian wrote:
>> From: Subrata Modak <[email protected]>
>> Subject: Re: [LTP] [PATCH] Writev06: Fix Error Checking for mmap()
>> Date: Wed, 18 Mar 2009 14:04:12 +0530
>> 
>> > On Tue, 2009-03-17 at 16:41 +0800, CAI Qian wrote:
>> >> Hi,
>> >> 
>> >> Sometimes, writev06 test case failed due to receiving a SIGSEGV signal,
>> >> 
>> >> <<<test_start>>>
>> >> tag=writev06 stime=1236859804
>> >> cmdline="writev06"
>> >> contacts=""
>> >> analysis=exit
>> >> initiation_status="ok"
>> >> <<<test_output>>>
>> >> writev06    1  BROK  :  Unexpected signal 11 received.
>> >> writev06    2  FAIL  :  unlink Failed--file = writev_data_file.23185,
>> >> errno = 2
>> >> incrementing stop
>> >> <<<execution_status>>>
>> >> duration=0 termination_type=exited termination_id=3 corefile=no
>> >> cutime=0 cstime=0
>> >> <<<test_end>>>
>> >> 
>> >> The test gives too little information to figure it out what might be
>> >> wrong. This failure is not always reproducible, and I have seen the
>> >> SIGSEGV has just arrived after a few mmap() calls. The following patch
>> >> makes it easier to debug this type of failure by fixing error checking
>> >> code for mmap() calls.
>> >> 
>> >> Signed-off-by: CAI Qian <[email protected]>
>> > 
>> > Thanks.
>> 
>> Sorry, a little bit late. Can you apply version 2 instead which fix the
>> actual SIGSEGV issue?
>> 
> 
> Sure, Send it off.
>

Already sent with the title,
  [PATCH] Writev06: Fix Error Checking for mmap() v2

CAI Qian

> Regards--
> Subrata
> 
>> Thanks,
>> CAI Qian
>> 
>> > 
>> > Regards--
>> > Subrata
>> > 
>> >> 
>> >> --- testcases/kernel/syscalls/writev/writev06.c.orig      2009-03-17 
>> >> 16:10:44.000000000 +0800
>> >> +++ testcases/kernel/syscalls/writev/writev06.c   2009-03-17 
>> >> 16:26:58.000000000 +0800
>> >> @@ -193,20 +193,28 @@
>> >>    * mapping around */
>> >>   bad_addr[0] = mmap(NULL, page_size * 3, PROT_NONE,
>> >>                   MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
>> >> + if (bad_addr[0] == MAP_FAILED)
>> >> +         tst_brkm(TBROK, cleanup, "mmap failed for bad_addr[0]");        
>> >> +
>> >>   good_addr[0] = mmap(NULL, page_size, PROT_READ|PROT_WRITE,
>> >>                   MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
>> >> + if (good_addr[0] == MAP_FAILED)
>> >> +         tst_brkm(TBROK, cleanup, "mmap failed for good_addr[0]");
>> >> +
>> >>   bad_addr[1] = mmap(NULL, page_size * 3, PROT_NONE,
>> >>                   MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
>> >> + if (bad_addr[1] == MAP_FAILED)
>> >> +         tst_brkm(TBROK, cleanup, "mmap failed for bad_addr[1]");
>> >> +
>> >>   good_addr[1] = mmap(NULL, page_size, PROT_READ|PROT_WRITE,
>> >>                   MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
>> >> + if (good_addr[1] == MAP_FAILED)
>> >> +         tst_brkm(TBROK, cleanup, "mmap failed for good_addr[1]");
>> >> +
>> >>   bad_addr[2] = mmap(NULL, page_size * 3, PROT_NONE,
>> >>                   MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
>> >> -       
>> >> - if (good_addr[0] <= 0 || good_addr[1] <= 0 ||
>> >> -                 bad_addr[0] <= 0 || bad_addr[0] <= 0 ||
>> >> -                 bad_addr[2] <= 0) {
>> >> -            printf("mmap failed\n");
>> >> -        }
>> >> + if (bad_addr[2] == MAP_FAILED)
>> >> +         tst_brkm(TBROK, cleanup, "mmap failed for bad_addr[2]");
>> >> 
>> >>   /* force page fault for writable mappings*/
>> >>   memset(good_addr[0],'a', page_size);
>> >> 
>> >> ------------------------------------------------------------------------------
>> >> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
>> >> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
>> >> easily build your RIAs with Flex Builder, the Eclipse(TM)based development
>> >> software that enables intelligent coding and step-through debugging.
>> >> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
>> >> _______________________________________________
>> >> Ltp-list mailing list
>> >> [email protected]
>> >> https://lists.sourceforge.net/lists/listinfo/ltp-list
>> > 
> 

------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to