QEMU user mode still crashes in multi-thread code.

Bug #1357206 reported by Jay Wong
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

I compiled the qemu 2.0 release source and find out qemu crashing when emulating multi-thread code in user mode.

I did a little search and found LP:668799 but it is far from now and it is probably not the problem here.

I used program below as the test program:

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

void *print_message_function( void *ptr );

main()
{
     pthread_t thread1, thread2;
     const char *message1 = "Thread 1";
     const char *message2 = "Thread 2";
     int iret1, iret2;

    /* Create independent threads each of which will execute function */

     iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
     if(iret1)
     {
         fprintf(stderr,"Error - pthread_create() return code: %d\n",iret1);
         exit(EXIT_FAILURE);
     }

     iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
     if(iret2)
     {
         fprintf(stderr,"Error - pthread_create() return code: %d\n",iret2);
         exit(EXIT_FAILURE);
     }

     printf("pthread_create() for thread 1 returns: %d\n",iret1);
     printf("pthread_create() for thread 2 returns: %d\n",iret2);

     /* Wait till threads are complete before main continues. Unless we */
     /* wait we run the risk of executing an exit which will terminate */
     /* the process and all threads before the threads have completed. */

     pthread_join( thread1, NULL);
     pthread_join( thread2, NULL);

     exit(EXIT_SUCCESS);
}

void *print_message_function( void *ptr )
{
     char *message;
     message = (char *) ptr;
     printf("%s \n", message);
}

Compiled to i386 and aarch64 object,
and both qemu-i386 and qemu-aarch64 had segmentation faults.

Revision history for this message
Erik de Castro Lopo (erikd) wrote :

I think this if bug lp:1098729 which is still open.

Revision history for this message
Peter Maydell (pmaydell) wrote :

This test case now works for me, so I think we have resolved the bug that was showing up here.

Changed in qemu:
status: New → Fix Committed
Thomas Huth (th-huth)
Changed in qemu:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.