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"
Subrata Modak
<[EMAIL PROTECTED]
et.ibm.com> To
Jin Bing Guo/China/[EMAIL PROTECTED]
08/13/2008 01:52 cc
PM ltp-list
<[email protected]>
Subject
Please respond to Re: [LTP] [PATCH] Fixed message
[EMAIL PROTECTED] queue leak in
t.ibm.com 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
> >
> >
> >
> >
>
>
>
>
<<inline: graycol.gif>>
<<inline: pic30659.gif>>
<<inline: ecblank.gif>>
------------------------------------------------------------------------- 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
