The libtier0_s.so library has a function named ThreadIsThreadIdRunning. The
code looks like this:
bool ThreadIsThreadIdRunning(pthread_t threadid) {
return pthread_kill(threadid, 0) == 0;
}
The problem is that during server shutdown the function is called few times
with 0 as threadid and this causes a Segmentation Fault if the system uses
some glibc/eglibc implementations. For example the implementation from
eglibc 2.11.2 (used by Debian Squeeze) looks like this:
int pthread_kill(pthread_t threadid, int signo) {
struct pthread *pd = (struct pthread *) threadid;
if (DEBUGGING_P && INVALID_TD_P (pd))
return ESRCH;
pid_t tid = atomic_forced_read (pd->tid);
etc...
}
The function expects that thread's ID is actually a pointer and the
validation is enabled only for debug builds. Calling the function with
0/NULL as first argument will always result in a crash.
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Erik-jan
Riemers
Sent: Tuesday, June 26, 2012 10:48 AM
To: Half-Life dedicated Linux server mailing list
Subject: Re: [hlds_linux] TF2 crash during shutdown
I run debian 6 on 2 boxes, they run fine. I have 1 box with debian 5 and
its experiencing these crashes on shutdown too. So it might sound like a
lib issue or similar. This has happened after the update from 12 june. Also
on
http://crash.limetech.org/related.php?symbol=libpthread-2.7.so+%2B+0xacb6you
can see more of these things happening (and also when it started, same
date)
2012/6/26 Peter Reinhold <[email protected]>
> On 19.06.2012 03:47, Invalid Protocol wrote:
>
> But I'm talking about a clean/vanilla server that runs only for few
>> seconds.
>> I know that a server may crash during shutdown if runs for few days, but
>> except this rare cases I usually didn't had any problems until now.
>> Probably
>>
>
> This started happening to me as well, I think it was 2 patches ago, before
> that I've seen (almost) nothing but clean exits.
>
>
> /Peter
>
>
> ______________________________**_________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
>
https://list.valvesoftware.**com/cgi-bin/mailman/listinfo/**hlds_linux<https
://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds_linux>
>
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
please visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds_linux
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please
visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds_linux