Bug#443660: New test case for #443660

2007-12-16 Thread Pierre Habouzit
notfound 443660 2.7-4
thanks

On Sat, Dec 15, 2007 at 07:35:36PM +, Rémi Denis-Courmont wrote:
 found 443660 2.7-4
 thanks
 
   Hello,
 
 Seems like the original test case does not crash anymore. I still have 
 problems with this one new though - it crashes pseudorandomly (about 10% 
 crashes here). Unfortunately, I have not been able to reproduce the problem 
 under a debugger.
 
 Interestingly, I once had the crash with the first error message in C locale:

  I completely fail to see why it's the same bug, in fact I'm almost
sure it's not. And without a backtrace I'm unsure what we can do about
it. Please open a new bug instead of diverting old bugs from their
purpose.

-- 
·O·  Pierre Habouzit
··O[EMAIL PROTECTED]
OOOhttp://www.madism.org


pgpr4Uyz6p2Q5.pgp
Description: PGP signature


Bug#443660: New test case for #443660

2007-12-16 Thread Rémi Denis-Courmont
Le Sunday 16 December 2007 12:58:16 Pierre Habouzit, vous avez écrit :
 notfound 443660 2.7-4
 thanks

 On Sat, Dec 15, 2007 at 07:35:36PM +, Rémi Denis-Courmont wrote:
  found 443660 2.7-4
  thanks
 
  Hello,
 
  Seems like the original test case does not crash anymore. I still have
  problems with this one new though - it crashes pseudorandomly (about 10%
  crashes here). Unfortunately, I have not been able to reproduce the
  problem under a debugger.
 
  Interestingly, I once had the crash with the first error message in C
  locale:

   I completely fail to see why it's the same bug, in fact I'm almost
 sure it's not. And without a backtrace I'm unsure what we can do about
 it. Please open a new bug instead of diverting old bugs from their
 purpose.

Connexion terminée par
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x86bd0b90 (LWP 10614)]
0xb7e599d8 in strcmp () from /lib/i686/cmov/libc.so.6
(gdb) bt
#0  0xb7e599d8 in strcmp () from /lib/i686/cmov/libc.so.6
#1  0xb7e0d473 in _nl_find_msg () from /lib/i686/cmov/libc.so.6
#2  0xb7e0e122 in __dcigettext () from /lib/i686/cmov/libc.so.6
#3  0xb7e0ceb3 in dcgettext () from /lib/i686/cmov/libc.so.6
#4  0xb7e59ee9 in strerror_r () from /lib/i686/cmov/libc.so.6
#5  0xb7e27c9f in vfprintf () from /lib/i686/cmov/libc.so.6
#6  0xb7e4a874 in vsnprintf () from /lib/i686/cmov/libc.so.6
#7  0xb7e2f1d5 in snprintf () from /lib/i686/cmov/libc.so.6
#8  0x080485f0 in run ()
#9  0xb7f3a4fb in start_thread () from /lib/i686/cmov/libpthread.so.0
#10 0xb7ebe60e in clone () from /lib/i686/cmov/libc.so.6

Looks like exactly the same problem to me.

-- 
Rémi Denis-Courmont
http://www.remlab.net/


signature.asc
Description: This is a digitally signed message part.


Bug#443660: New test case for #443660

2007-12-16 Thread Pierre Habouzit
On Sun, Dec 16, 2007 at 01:30:39PM +, Rémi Denis-Courmont wrote:
 Le Sunday 16 December 2007 12:58:16 Pierre Habouzit, vous avez écrit :
  notfound 443660 2.7-4
  thanks
 
  On Sat, Dec 15, 2007 at 07:35:36PM +, Rémi Denis-Courmont wrote:
   found 443660 2.7-4
   thanks
  
 Hello,
  
   Seems like the original test case does not crash anymore. I still have
   problems with this one new though - it crashes pseudorandomly (about 10%
   crashes here). Unfortunately, I have not been able to reproduce the
   problem under a debugger.
  
   Interestingly, I once had the crash with the first error message in C
   locale:
 
I completely fail to see why it's the same bug, in fact I'm almost
  sure it's not. And without a backtrace I'm unsure what we can do about
  it. Please open a new bug instead of diverting old bugs from their
  purpose.
 
 Connexion terminée par
 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread 0x86bd0b90 (LWP 10614)]
 0xb7e599d8 in strcmp () from /lib/i686/cmov/libc.so.6
 (gdb) bt
 #0  0xb7e599d8 in strcmp () from /lib/i686/cmov/libc.so.6
 #1  0xb7e0d473 in _nl_find_msg () from /lib/i686/cmov/libc.so.6
 #2  0xb7e0e122 in __dcigettext () from /lib/i686/cmov/libc.so.6
 #3  0xb7e0ceb3 in dcgettext () from /lib/i686/cmov/libc.so.6
 #4  0xb7e59ee9 in strerror_r () from /lib/i686/cmov/libc.so.6
 #5  0xb7e27c9f in vfprintf () from /lib/i686/cmov/libc.so.6
 #6  0xb7e4a874 in vsnprintf () from /lib/i686/cmov/libc.so.6
 #7  0xb7e2f1d5 in snprintf () from /lib/i686/cmov/libc.so.6
 #8  0x080485f0 in run ()
 #9  0xb7f3a4fb in start_thread () from /lib/i686/cmov/libpthread.so.0
 #10 0xb7ebe60e in clone () from /lib/i686/cmov/libc.so.6
 
 Looks like exactly the same problem to me.

  The trace is the same indeed, could you provide a valgrind trace ? I'm
completely unable to reproduce the bug with a glibc 2.7-4. Are you sure
youre libc6-686 is a 2.7-4 as well ?

  But I looked at the code, the section that does the realloc that was
responsible for the crash before is properly guarded by mutexes now, so
it's definitely (if there still is a crash which atm have no proof
about) not occurring at the same place. Hence the valgrind trace that
tells line numbers would help a lot.

-- 
·O·  Pierre Habouzit
··O[EMAIL PROTECTED]
OOOhttp://www.madism.org


pgpjUMviWBMv2.pgp
Description: PGP signature


Bug#443660: New test case for #443660

2007-12-15 Thread Rémi Denis-Courmont
found 443660 2.7-4
thanks

Hello,

Seems like the original test case does not crash anymore. I still have 
problems with this one new though - it crashes pseudorandomly (about 10% 
crashes here). Unfortunately, I have not been able to reproduce the problem 
under a debugger.

Interestingly, I once had the crash with the first error message in C locale:

# ./a.out
Connection timed out
Erreur de segmentation
#

Then again, I also had this once:
# ./a.out
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Connexion terminée par expiration du délai d'attente
Erreur de segmentation
#

-- 
Rémi Denis-Courmont
http://www.remlab.net/
#include stdio.h
#include pthread.h
#include locale.h
#include libintl.h
#include errno.h

#define NTH 100

static pthread_barrier_t *bp;

static void *run (void *dummy)
{
	char buf[256];

	(void)dummy;
	errno = ETIMEDOUT;

	pthread_barrier_wait (bp);
	for (;;)
	{
		snprintf (buf, sizeof (buf), %m);
		puts (buf);
	}
}

int main (void)
{
	unsigned i;
	pthread_barrier_t barrier;
	pthread_t threads[NTH];

	setlocale (LC_ALL, );
	bindtextdomain (vlc, /usr/share/locale);

	pthread_barrier_init (barrier, NULL, NTH);
	bp = barrier;

	for (i = 0; i  NTH; i++)
		pthread_create (threads + i, NULL, run, NULL);

	run (NULL);
	return 0;
}