Thank you. This works fine for me. I should have cleaned up post
patching and before executing tests. Please see results below Port
Patching:

ipcs -q

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    

$ ./testcases/kernel/ipc/ipc_stress/message_queue_test_05 
./testcases/kernel/ipc/ipc_stress/message_queue_test_05: IPC Message
Queue TestSuite program

        Creating 10 message queues ...

        All message queues created successfully

successful!

$ echo $?
0

$ ./testcases/kernel/ipc/ipc_stress/message_queue_test_05 
./testcases/kernel/ipc/ipc_stress/message_queue_test_05: IPC Message
Queue TestSuite program

        Creating 10 message queues ...

        All message queues created successfully

successful!

$ echo $?
0

$ ./testcases/kernel/ipc/ipc_stress/message_queue_test_05 
./testcases/kernel/ipc/ipc_stress/message_queue_test_05: IPC Message
Queue TestSuite program

        Creating 10 message queues ...

        All message queues created successfully

successful!

The Patch has been applied. I think this solves a long pending problem
even Jeff was complain about. Jeff, does this solve you problem ?

Regards--
Subrata


On Wed, 2008-08-13 at 14:54 +0800, Jin Bing Guo wrote:
> Yes, before paching, the message_queue_test_05 would exhaust all the
> message queues resource in system. After that, none of
> message_queue_test cases could create message queue successfully.
> 
> I suggest to check the message queues resource before running the
> original case and pached case. 
> you can list the message queues resource by "$ipcs -q", and get the
> max message queues in your system by "$cat /proc/sys/kernel/msgmni".
> Also, you can remove the message queue by "$ipcrm -q msqid". 
> 
> =====================
> Before Patching:
> =====================
> [EMAIL PROTECTED] testcases]# ipcs -q
> 
> ------ Message Queues --------
> key msqid owner perms used-bytes messages 
> 
> [EMAIL PROTECTED] testcases]#
> ltp-full-20080731.orig/testcases/kernel/ipc/ipc_stress/message_queue_test_05 
> ltp-full-20080731.orig/testcases/kernel/ipc/ipc_stress/message_queue_test_05: 
> IPC Message Queue TestSuite program
> 
> Creating 100 message queues ...
> ERROR [line: 146] msgget failed: No space left on device
> 
> [EMAIL PROTECTED] testcases]# ipcs -q
> 
> ------ Message Queues --------
> key msqid owner perms used-bytes messages 
> 0x00000000 12156928 root 777 0 0 
> 0x00000000 12189697 root 777 0 0 
> 0x00000000 12255234 root 777 0 0 
> 0x00000000 12288003 root 777 0 0 
> 0x00000000 12353540 root 777 0 0 
> 0x00000000 12386309 root 777 0 0 
> 0x00000000 12451846 root 777 0 0 
> 0x00000000 12484615 root 777 0 0 
> 0x00000000 12550152 root 777 0 0 
> 0x00000000 12582921 root 777 0 0 
> 0x00000000 12648458 root 777 0 0 
> 0x00000000 12681227 root 777 0 0 
> 0x00000000 12746764 root 777 0 0 
> 0x00000000 12779533 root 777 0 0 
> 0x00000000 12845070 root 777 0 0 
> 0x00000000 12877839 root 777 0 0 
> 
> =====================
> After Patching:
> =====================
> [EMAIL PROTECTED] testcases]#
> ltp-full-20080731.orig/testcases/kernel/ipc/ipc_stress/cleanup
> ipcrm msg 12156928 12189697 12255234 12288003 12353540 12386309
> 12451846 12484615 12550152 12582921 12648458 12681227 12746764
> 12779533 12845070 12877839
> resource(s) deleted
> ipcrm shm 32769
> resource(s) deleted
> [EMAIL PROTECTED] testcases]# ipcs -q
> 
> ------ Message Queues --------
> key msqid owner perms used-bytes messages 
> 
> [EMAIL PROTECTED] testcases]#
> ltp-full-20080731/testcases/kernel/ipc/ipc_stress/message_queue_test_05 
> ltp-full-20080731/testcases/kernel/ipc/ipc_stress/message_queue_test_05: IPC 
> Message Queue TestSuite program
> 
> Creating 10 message queues ...
> 
> All message queues created successfully
> 
> successful!
> [EMAIL PROTECTED] testcases]# ipcs -q
> 
> ------ Message Queues --------
> key msqid owner perms used-bytes messages 
> 
> [EMAIL PROTECTED] testcases]# 
> 
> 
> 
> Best regards!
> 
> Jin Bing Guo 郭晋兵
> 
> Linux for System p Test
> IBM China Systems & Technology Laboratory in Beijing
> Tel: +86-10-82454439 
> Email: [EMAIL PROTECTED]
> -------------------------------------
> "Do today what others won't so tomorrow you do what other's can't" 
> 
> 
> 
> Inactive hide details for Subrata Modak ---08/13/2008 02:07:20
> PM---Thanks Jin for the updated Patch. Unfortunately for me theSubrata
> Modak ---08/13/2008 02:07:20 PM---Thanks Jin for the updated Patch.
> Unfortunately for me the problem
> 
>                                 Subrata Modak <[EMAIL PROTECTED]> 
>                                 
>                                 08/13/2008 01:52 PM 
>                                 Please respond to
>                                 [EMAIL PROTECTED]
>                                 
> 
>                To
> 
> Jin Bing
> Guo/China/[EMAIL PROTECTED]
> 
>                cc
> 
> ltp-list
> <[email protected]>
> 
>           Subject
> 
> Re: [LTP] [PATCH]
> Fixed message
> queue leak in
> message_queue_test_05
> 
> 
> 
> Thanks Jin for the updated Patch. Unfortunately for me the problem
> remains still. See the following output:
> 
> =====================
> Before Patching:
> =====================
> $ ./testcases/kernel/ipc/ipc_stress/message_queue_test_05
> ./testcases/kernel/ipc/ipc_stress/message_queue_test_05: IPC Message
> Queue TestSuite program
> 
>        Creating 100 message queues ...
> ERROR [line: 146] msgget failed: No space left on device
> 
> =====================
> After Patching:
> =====================
> $ ./testcases/kernel/ipc/ipc_stress/message_queue_test_05
> ./testcases/kernel/ipc/ipc_stress/message_queue_test_05: IPC Message
> Queue TestSuite program
> 
>        Creating 10 message queues ...
> ERROR [line: 149] msgget failed: No space left on device
> 
> $ ./testcases/kernel/ipc/ipc_stress/message_queue_test_05
> ./testcases/kernel/ipc/ipc_stress/message_queue_test_05: IPC Message
> Queue TestSuite program
> 
>        Creating 10 message queues ...
> ERROR [line: 149] msgget failed: No space left on device
> 
> $ ./testcases/kernel/ipc/ipc_stress/message_queue_test_05
> ./testcases/kernel/ipc/ipc_stress/message_queue_test_05: IPC Message
> Queue TestSuite program
> 
>        Creating 10 message queues ...
> ERROR [line: 149] msgget failed: No space left on device
> 
> =====================
> Running Using ./runltp script:
> =====================
> Running tests.......
> <<<test_start>>>
> tag=message_queue_test_05 stime=1218606311
> cmdline="message_queue_test_05"
> contacts=""
> analysis=exit
> initiation_status="ok"
> <<<test_output>>>
> incrementing stop
> message_queue_test_05: IPC Message Queue TestSuite program
> 
>        Creating 10 message queues ...
> ERROR [line: 149] msgget failed: No space left on device
> 
> <<<execution_status>>>
> duration=0 termination_type=exited termination_id=255 corefile=no
> cutime=0 cstime=0
> <<<test_end>>>
> INFO: pan reported some tests FAIL
> LTP Version: LTP-20080731
> 
> 
> Regards--
> Subrata
> 
> On Wed, 2008-08-13 at 12:17 +0800, Jin Bing Guo wrote:
> > Sent a new patch for these problem. 
> > 
> > 1> Add a cleanup() to remove the created message queues at premature
> > exit.
> > 2>  Change the default number of message queues from 100 to 10.
> > Because the maxmum on RHEL/SLES/Ubuntu is 16.
> > 
> > 
> > Signed-off-by: Jin Bing Guo <[EMAIL PROTECTED]>
> > -----
> > ---
> >
> ltp-full-20080731.orig/testcases/kernel/ipc/ipc_stress/message_queue_test_05.c
>  2007-11-10 03:24:41.000000000 -0600
> > +++
> >
> ltp-full-20080731/testcases/kernel/ipc/ipc_stress/message_queue_test_05.c 
> 2008-08-12 22:39:50.000000000 -0500
> > @@ -82,7 +82,7 @@
> >  
> >  #ifdef _LINUX_
> >  #define MAX_MESSAGE_QUEUES 128
> > -#define DEFAULT_MESSAGE_QUEUES 100
> > +#define DEFAULT_MESSAGE_QUEUES 10
> >  #else
> >  #define MAX_MESSAGE_QUEUES 4096
> >  #define DEFAULT_MESSAGE_QUEUES 1000
> > @@ -97,11 +97,12 @@
> >   * parse_args (): Parse command line arguments
> >   * sys_error (): System error message function
> >   * error (): Error message function
> > + * cleanup (): Cleanup function for the test
> >   */
> >  static void parse_args (int, char **);
> >  static void sys_error (const char *, int);
> >  static void error (const char *, int);
> > -
> > +static void cleanup (int qnum);
> >  /*
> >   * Global variables
> >   *
> > @@ -143,7 +144,10 @@ int main (int argc, char **argv)
> >   if (debug) printf ("\tcreating queue [%d]\n", nqueues);
> >   if ((msqid_array [nqueues++] 
> >   = msgget (IPC_PRIVATE, IPC_CREAT|mode)) < 0)
> > + {
> > + cleanup(nqueues);
> >   sys_error ("msgget failed", __LINE__);
> > + }
> >  
> >   if (nqueues > MAX_MESSAGE_QUEUES) 
> >   break;
> > @@ -158,12 +162,7 @@ int main (int argc, char **argv)
> >   }
> >   printf ("\n\tAll message queues created successfully\n");
> >  
> > - while (nqueues > 0) {
> > - if (msgctl (msqid_array [--nqueues], IPC_RMID, 0) < 0)
> > - sys_error ("msgctl (IPC_RMID) failed", __LINE__);
> > - if (debug) printf ("\tremoved queue  [%d]\n", nqueues);
> > - }
> > -
> > +        cleanup(nqueues);
> >   printf ("\nsuccessful!\n");
> >   return (0);
> >  }
> > @@ -242,3 +241,27 @@ static void error (const char *msg, int 
> >   fprintf (stderr, "ERROR [line: %d] %s\n", line, msg);
> >   exit (-1);
> >  }
> > +
> > +
> >
> +/*---------------------------------------------------------------------+
> > +|                              cleanup()
> > |
> > +|
> > ====================================================================
> |
> > +| cleanup() - performs all message queues cleanup for this test at
> > |
> > +|             completion or premature exit.
> >    |
> > +|             Remove the temporary message queues created.
> > |
> > +|
> >    |
> >
> ++---------------------------------------------------------------------*/
> > +void cleanup(int qnum)
> > +{
> > +        /*
> > +         *  Remove the allocated message queues.
> > +         */
> > +        while (qnum > 0) {
> > + if (msqid_array [--qnum] < 0)
> > + continue;
> > +                if (msgctl (msqid_array [qnum], IPC_RMID, 0) < 0)
> > +                        sys_error ("msgctl (IPC_RMID) failed",
> > __LINE__);
> > +                if (debug) printf ("\tremoved queue  [%d]\n",
> qnum);
> > +        }
> > +}
> > +
> > 
> > 
> > (See attached file: Fix_free_mq_message_queue_test_05.patch)
> > 
> > 
> > 
> > Best regards!
> > 
> > Jin Bing Guo 郭晋兵
> > 
> > 
> > 
> > 
> > Inactive hide details for Subrata Modak ---08/11/2008 07:28:19
> PM---On
> > Mon, 2008-08-11 at 18:21 +0800, Jin Bing Guo wrote:Subrata Modak
> > ---08/11/2008 07:28:19 PM---On Mon, 2008-08-11 at 18:21 +0800, Jin
> > Bing Guo wrote:
> > 
> >                                 Subrata Modak
> <[EMAIL PROTECTED]> 
> >                                 
> >                                 08/11/2008 07:13 PM 
> >                                 Please respond to
> >                                 [EMAIL PROTECTED]
> >                                 
> > 
> >                To
> > 
> > Jin Bing
> > Guo/China/[EMAIL PROTECTED]
> > 
> >                cc
> > 
> > ltp-list
> > <[email protected]>
> > 
> >           Subject
> > 
> > Re: [LTP] [PATCH]
> > Fixed message
> > queue leak in
> > message_queue_test_05
> > 
> > 
> > 
> > 
> > On Mon, 2008-08-11 at 18:21 +0800, Jin Bing Guo wrote:
> > > Sorry for the format error of my patch. I resent it by an
> > attachment .
> > > Please check it.
> > > 
> > > 
> > > Signed-off-by: Jin Bing Guo <[EMAIL PROTECTED]>
> > 
> > However, i do not see any problem that this patch solves now. Even
> > after
> > apply the patch, i see the error popping up:
> > 
> > 
> > Before Patching:
> > 
> > # ./testcases/bin/message_queue_test_05
> > ./testcases/bin/message_queue_test_05: IPC Message Queue TestSuite
> > program
> > 
> >        Creating 100 message queues ...
> > ERROR [line: 146] msgget failed: No space left on device
> > 
> > # echo $?
> > 255
> > 
> > 
> > After Patching:
> > 
> > # ./testcases/bin/message_queue_test_05
> > ./testcases/bin/message_queue_test_05: IPC Message Queue TestSuite
> > program
> > 
> >        Creating 100 message queues ...
> > ERROR [line: 150] msgget failed: Invalid argument
> > 
> > # echo $?
> > 255
> > 
> > Can you please relook into this once again and send me the patch
> that
> > solves this issue as  ?
> > 
> > Regards--
> > Subrata
> > 
> > > ---
> > > Fix_free_mq_message_queue_test_05.patch
> > > 
> > > 
> > > (See attached file: Fix_free_mq_message_queue_test_05.patch)
> > > 
> > > Best regards!
> > > 
> > > Jin Bing Guo 郭晋兵
> > > 
> > > Linux for System p Test
> > > IBM China Systems & Technology Laboratory in Beijing
> > > Tel: +86-10-82454439 
> > > Email: [EMAIL PROTECTED]
> > > -------------------------------------
> > > "Do today what others won't so tomorrow you do what other's
> can't" 
> > > 
> > > 
> > > 
> > > Inactive hide details for Subrata Modak ---08/11/2008 04:58:02
> > > PM---Problem with this once as well:Subrata Modak ---08/11/2008
> > > 04:58:02 PM---Problem with this once as well:
> > > 
> > >                                 Subrata Modak
> > <[EMAIL PROTECTED]> 
> > >                                 
> > >                                 08/11/2008 04:43 PM 
> > >                                 Please respond to
> > >                                 [EMAIL PROTECTED]
> > >                                 
> > > 
> > >                To
> > > 
> > > Jin Bing
> > > Guo/China/[EMAIL PROTECTED]
> > > 
> > >                cc
> > > 
> > > ltp-list
> > > <[email protected]>
> > > 
> > >           Subject
> > > 
> > > Re: [LTP] [PATCH]
> > > Fixed message
> > > queue leak in
> > > message_queue_test_05
> > > 
> > > 
> > > 
> > > Problem with this once as well:
> > > 
> > > $ patch --dry-run -p1 < ../11_08_2008-\([EMAIL PROTECTED]
> > > \)-003_message_queue_test05.patch 
> > > missing header for unified diff at line 175 of patch
> > > can't find file to patch at input line 175
> > > Perhaps you used the wrong -p or --strip option?
> > > The text leading up to this was:
> > > --------------------------
> > > .........................
> > > 
> > > .......................
> > > --------------------------
> > > File to patch:
> > testcases/kernel/ipc/ipc_stress/message_queue_test_05.c
> > > patching file
> > testcases/kernel/ipc/ipc_stress/message_queue_test_05.c
> > > patch: **** malformed patch at line 182: IPC_RMID, 0);
> > > 
> > > 
> > > Can you please resend this as well ?
> > > 
> > > Regards--
> > > Subrata
> > > 
> > > 
> > > On Thu, 2008-08-07 at 14:39 +0800, Jin Bing Guo wrote:
> > > > In message_queue_test_05, it planned to allocate 100 message
> > queues
> > > > for stress testing. 
> > > > But if the system resource of message queue couldn't meet it, it
> > > would
> > > > exit without deleting 
> > > > the allocated message queues. In addition, other test cases
> > couldn't
> > > > allocate a new message queue any more.
> > > > 
> > > >
> > >
> >
> ---------------------------------------------------------------------------------
> > > > clashlp1:/testcases # cat /proc/sys/kernel/msgmni 
> > > > 16
> > > > medusalp1:/testcases/ltp/testcases/kernel/ipc/ipc_stress
> > > > #./message_queue_test_05 
> > > > ./message_queue_test_05: IPC Message Queue TestSuite program
> > > > 
> > > >        Creating 100 message queues ...
> > > > ERROR [line: 150] msgget failed: Invalid argument
> > > > 
> > > > clashlp1:/testcases # ipcs -q
> > > > 
> > > > ------ Message Queues --------
> > > > key        msqid      owner      perms      used-bytes
> messages
> > >  
> > > > 0x00000000 1474560    root       777        0            0
> > >   
> > > > 0x00000000 1507329    root       777        0            0
> > >   
> > > > 0x00000000 1572866    root       777        0            0
> > >   
> > > > 0x00000000 1605635    root       777        0            0
> > >   
> > > > 0x00000000 1671172    root       777        0            0
> > >   
> > > > 0x00000000 1703941    root       777        0            0
> > >   
> > > > 0x00000000 1769478    root       777        0            0
> > >   
> > > > 0x00000000 1802247    root       777        0            0
> > >   
> > > > 0x00000000 1867784    root       777        0            0
> > >   
> > > > 0x00000000 1900553    root       777        0            0
> > >   
> > > > 0x00000000 1966090    root       777        0            0
> > >   
> > > > 0x00000000 1998859    root       777        0            0
> > >   
> > > > 0x00000000 2064396    root       777        0            0
> > >   
> > > > 0x00000000 2097165    root       777        0            0
> > >   
> > > > 0x00000000 2162702    root       777        0            0
> > >   
> > > > 0x00000000 2195471    root       777        0            0 
> > > >
> > >
> >
> ---------------------------------------------------------------------------------
> > > > 
> > > > This patch fixed the two problems:
> > > > 1> Remove the exit(-1); form the sys_error().  Because when
> > removing
> > > > queues, it 
> > > > would continue although some of queues failed in removing.  So
> It
> > > > would free the 
> > > > held queues as far as possible.
> > > > 
> > > > 2> Remove all allocated queues if it failed in allocating new
> > > queues.
> > > > So it would
> > > > free all the held queues before exiting the case.
> > > > 
> > > > Signed-off-by: Jin Bing Guo <[EMAIL PROTECTED]>
> > > > -----------------------------------------
> > > > ---
> > > >
> > >
> >
> ltp-full-20080731.orig/testcases/kernel/ipc/ipc_stress/message_queue_test_05.c
>  2007-11-10 03:24:41.000000000 -0600
> > > > +++
> > > >
> > >
> >
> ltp-full-20080731/testcases/kernel/ipc/ipc_stress/message_queue_test_05.c 
> 2008-08-06 22:04:04.000000000 -0500
> > > > @@ -143,7 +143,13 @@
> > > >   if (debug) printf ("\tcreating queue [%d]\n", nqueues);
> > > >   if ((msqid_array [nqueues++] 
> > > >   = msgget (IPC_PRIVATE, IPC_CREAT|mode)) < 0)
> > > > + {
> > > > +               while (nqueues > 0) 
> > > > +                        msgctl (msqid_array [--nqueues],
> > IPC_RMID,
> > > > 0);
> > > > +
> > > >   sys_error ("msgget failed", __LINE__);
> > > > + exit (-1);
> > > > + } 
> > > >  
> > > >   if (nqueues > MAX_MESSAGE_QUEUES) 
> > > >   break;
> > > > @@ -240,5 +246,4 @@
> > > >  static void error (const char *msg, int line)
> > > >  {
> > > >   fprintf (stderr, "ERROR [line: %d] %s\n", line, msg);
> > > > - exit (-1);
> > > >  }
> > > > 
> > > > 
> > > > Best regards!
> > > > 
> > > > Jin Bing Guo 郭晋兵
> > > > 
> > > > 
> > > >
> > >
> >
> -------------------------------------------------------------------------
> > > > This SF.Net email is sponsored by the Moblin Your Move
> Developer's
> > > challenge
> > > > Build the coolest Linux based applications with Moblin SDK & win
> > > great prizes
> > > > Grand prize is a trip for two to an Open Source event anywhere
> in
> > > the world
> > > > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> > > > _______________________________________________ Ltp-list mailing
> > > list [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/ltp-list
> > > 
> > > 
> > > 
> > > 
> > 
> > 
> > 
> > 
> 
> 
> 
> 


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to