Re: haproxy: *** glibc detected *** /usr/sbin/haproxy: double free or corruption (out): 0x0000000001ef41a0 ***

2012-06-01 Thread Sander Klein

Hey Willy,

On 01.06.2012 01:03, Willy Tarreau wrote:

Sander,

first, thank you very much for your configuration, I could reproduce 
the
issue here. It's not 100% reproducible due to address randomization, 
but

common enough to get the issue.

The issue comes from the use of user-lists which are implied by stats 
auth.
User lists are resolved during parsing. They start with a string 
holding
the name of the user list, and are later resolved to point to the 
userlist

itself.

The issue is that during exit, we try to free everything before 
leaving
(well, it's mostly to save valgrind from shouting at those who use 
it). And
when ACL params are freed, the userlist names are freed too. But when 
the
pointer has already been resolved, it points to a userlist and not 
its name,

and this list has already been resolved.

I've tried doing an ugly hack to confirm I can work on a solution. 
Right now
I don't want to release it, it's too hackish. I prefer that you keep 
seeing
the glibc's error message for now on, until I get a real and solid 
fix.


I will recontact you as soon as I have something clean.

Thank you again for the report and for providing the useful 
configuration.


Willy


Thank you for your answer. I'll ignore it then.

Greets,

Sander



Re: haproxy: *** glibc detected *** /usr/sbin/haproxy: double free or corruption (out): 0x0000000001ef41a0 ***

2012-06-01 Thread Willy Tarreau
Hi Sander,

On Fri, Jun 01, 2012 at 08:30:26AM +0200, Sander Klein wrote:
 Thank you for your answer. I'll ignore it then.

Sleeping a bit on a bug is sometimes profitable. I have fixed it
the right way this morning and pushed the fix to git. I think I'll
issue -dev11 this week-end because there were still a huge number
of bugs pending since dev10 !

Cheers,
Willy




Re: haproxy: *** glibc detected *** /usr/sbin/haproxy: double free or corruption (out): 0x0000000001ef41a0 ***

2012-05-31 Thread Sander Klein

Hi,


Hi,

When I reload haproxy I get this message:

May 22 11:02:45 lb01-a haproxy: *** glibc detected ***
/usr/sbin/haproxy: double free or corruption (out): 
0x01ef41a0

***

I'm running haproxy 1.5-dev10 2012/05/13

If any more info is needed please let me know.


I was wondering if this message is a problem or some bug.


I've also tested haproxy-1.5-ss-20120531 and it also gives the 
following error on reload:


May 31 08:52:42 lb01-b haproxy: *** glibc detected *** 
/usr/sbin/haproxy: double free or corruption (out): 0x01ece190 
***


Can this safely be ignored?

Greets,

Sander Klein



Re: haproxy: *** glibc detected *** /usr/sbin/haproxy: double free or corruption (out): 0x0000000001ef41a0 ***

2012-05-31 Thread Willy Tarreau
Hi Sander,

On Thu, May 31, 2012 at 09:49:50AM +0200, Sander Klein wrote:
 Hi,
 
 Hi,
 
 When I reload haproxy I get this message:
 
 May 22 11:02:45 lb01-a haproxy: *** glibc detected ***
 /usr/sbin/haproxy: double free or corruption (out): 
 0x01ef41a0
 ***
 
 I'm running haproxy 1.5-dev10 2012/05/13
 
 If any more info is needed please let me know.
 
 I was wondering if this message is a problem or some bug.
 
 I've also tested haproxy-1.5-ss-20120531 and it also gives the 
 following error on reload:
 
 May 31 08:52:42 lb01-b haproxy: *** glibc detected *** 
 /usr/sbin/haproxy: double free or corruption (out): 0x01ece190 
 ***
 
 Can this safely be ignored?

It clearly is a bug. However if it happens on exit, it should be harmless,
but I'd prefer to fix it. Can you please send me your config in private so
that I can reproduce it ? I'm sure that it's just an overzealous free() in
deinit() for something that was already released but not nulled.

Thanks,
Willy




Re: haproxy: *** glibc detected *** /usr/sbin/haproxy: double free or corruption (out): 0x0000000001ef41a0 ***

2012-05-31 Thread Willy Tarreau
Sander,

first, thank you very much for your configuration, I could reproduce the
issue here. It's not 100% reproducible due to address randomization, but
common enough to get the issue.

The issue comes from the use of user-lists which are implied by stats auth.
User lists are resolved during parsing. They start with a string holding
the name of the user list, and are later resolved to point to the userlist
itself.

The issue is that during exit, we try to free everything before leaving
(well, it's mostly to save valgrind from shouting at those who use it). And
when ACL params are freed, the userlist names are freed too. But when the
pointer has already been resolved, it points to a userlist and not its name,
and this list has already been resolved.

I've tried doing an ugly hack to confirm I can work on a solution. Right now
I don't want to release it, it's too hackish. I prefer that you keep seeing
the glibc's error message for now on, until I get a real and solid fix.

I will recontact you as soon as I have something clean.

Thank you again for the report and for providing the useful configuration.

Willy




Re: haproxy: *** glibc detected *** /usr/sbin/haproxy: double free or corruption (out): 0x0000000001ef41a0 ***

2012-05-22 Thread Sander Klein

Hmmm, I thought I typed more text...

On 22.05.2012 11:06, Sander Klein wrote:

Hi,

When I reload haproxy I get this message:

May 22 11:02:45 lb01-a haproxy: *** glibc detected ***
/usr/sbin/haproxy: double free or corruption (out): 
0x01ef41a0

***

I'm running haproxy 1.5-dev10 2012/05/13

If any more info is needed please let me know.


I was wondering if this message is a problem or some bug.

Regards,

Sander