[krbdev.mit.edu #7860] libdb2 hanging on regular distribution

Pierre Labastie via RT rt-comment at krbdev.mit.edu
Sun Feb 16 14:47:15 EST 2014


Le 14/02/2014 21:33, Tom Yu via RT a écrit :
> "Pierre Labastie via RT" <rt-comment at krbdev.mit.edu> writes:
> 
>> Not sure I am sending to the right place, sorry, I am not sure I 
>> understand this bug system...
>>
>> I have reproduced the hanging with a Debian distribution (jessie/sid) on 
>> a real machine:
>>
>> $ uname -a
>> Linux xxxx 3.12-1-amd64 #1 SMP Debian 3.12.9-1 (2014-02-01) x86_64 GNU/Linux
>>
>> $ less /etc/os-release
>> PRETTY_NAME="Debian GNU/Linux jessie/sid"
>> NAME="Debian GNU/Linux"
>> ID=debian
>> ANSI_COLOR="1;31"
>> HOME_URL="http://www.debian.org/"
>> SUPPORT_URL="http://www.debian.org/support/"
>> BUG_REPORT_URL="http://bugs.debian.org/"
> 
> Would this happen to be running on the same physical hardware as the
> qemu VM you mentioned in your first message?  I think we have not seen
> any other report of a problem similar to what you've described, and we
> can't seem to reproduce it.  We don't have exactly the configuration
> you describe, but we regularly run the tests on buildbot slaves on
> x86 and x86_64 Ubuntu systems with no issues.
> 
> Getting strace output from the process when it is looping endlessly
> around writev() might be helpful, if you have time to do that.
> Otherwise, there is single stepping through the debugger, which can
> get rather involved.
> 
Hi,

Same behavior on 2 different hardwares (one desktop with intel core i5, and
one workstation with dual intel Seon E5620, but same version of gcc on both.
I mention gcc, because it might be the cause of the trouble.

Putting more and more printf's, I narrowed the problem to mpool_get and
mpool_look (in mpool.c).
but then, I saw that adding one printf at some place just changed the behavior
(allowing test2 to pass). So I recompiled everything in:
plugins/kdb/db2/libdb2 with CFLAGS="-g -O1". Exactly, after make:
----------------------------------------
/sources/mitkrb/krb5-1.12.1/src$ cd plugins/kdb/db2/libdb2/
# next instruction needed for getting a big enough dictionary:
# the bundled one is too small for some tests
/sources/mitkrb/krb5-1.12.1/src/plugins/kdb/db2/libdb2$ sed \
'/\^\$/s at sed@LANG=C sed -e '\''/[^[:alpha:]]/d'\''@' -i test/run.test
/sources/mitkrb/krb5-1.12.1/src/plugins/kdb/db2/libdb2$ find . \
-name \*.c | xargs touch
/sources/mitkrb/krb5-1.12.1/src/plugins/kdb/db2/libdb2$ make CFLAGS="-g -O1"
making all in hash...
[...]
rm -f libdb.so
ln -s libdb.so.1.1 libdb.so
/sources/mitkrb/krb5-1.12.1/src/plugins/kdb/db2/libdb2$ make check
making check in hash...
[...]
Test 1: btree, hash: small key, small data pairs
Test 1: recno: small key, small data pairs
Test 2: btree, hash: small key, medium data pairs
Test 2: recno: small key, medium data pairs
Test 3: hash: small key, big data pairs
Test 3: btree: small key, big data pairs
    page size 512
    page size 16384
    page size 65536
Test 3: recno: big data pairs
    page size 512
    page size 16384
    page size 65536
Test 4: recno: random entries
Test 5: recno: reverse order entries
[...&c]
--------------------------------------
My gcc version is:
gcc (Debian 4.8.2-15) 4.8.2

Now, downgrading to gcc-4.7:
gcc (Debian 4.7.3-10) 4.7.3
All tests pass when running "make check" from the src directory, with default
CFLAGS...

I do not know whether you want to discuss with gcc developpers, or you prefer
that I send a bug report.

Regards
Pierre



More information about the krb5-bugs mailing list