|
Add test script: fbhang.sh
Reboot is required prior to running it to reproduce problem! Some comments:
- the "how to reproduce" is only the simplest way to reproduce the problem; it was noticed as random hangs in my app (for example on IBPP::Fetch). - the problem does not happen on Snow Leopard (10.6); though the 10.6 system may not be comparable since it is a very old (and slow) system. - after the first hang, if the operation is retried the database is successfully created; also firebird works without a problem until the system is booted again. - sometimes (very rarely) it can hang twice or more times in a row. - it seems that once the database is created and the system is rebooted you can connect normally to the previously created database - tried setting FIREBIRD_LOCK to something different than /tmp/firebird - does not help. - if FIREBIRD_LOCK is used and the lock files survive reboot; it seams that the problem happens less often (note the 'seams', I might be wrong) Possible 'workaround': - before creating your database, call isql to create a dummy database and if it hangs, kill it. - you should be able to create your real database now. Tried using "localhost:/tmp/hang.db" as the database name. BTW: is this Superserver or Superclassic?
This time isql hangs on poll() (Select::select) waiting for fb_inet_server. However fb_inet_server hangs in a similar way as before. See attached stacktraces. Stacktraces of hang using localhost:/
isql_localhost_stacktrace_08032012.txt fb_inet_server_localhost_stacktrace_08032012.txt Attaching valgrind output of isql hang using "/tmp/hang.db" as the database name.
Valgrind/memcheck (32-bit) was invoked as: FB=/Library/Frameworks/Firebird.framework/Versions/A/Resources/bin DB=/tmp/hang.db ( printf "create database '%s' user 'SYSDBA' password 'masterkey';\n" "${DB}" printf "quit;\n" ) | /usr/local/bin/valgrind \ --dsymutil=yes \ --num-callers=50 \ --max-stackframe=4048000 \ --track-origins=yes \ --leak-check=full \ "${FB}/isql" -q > /tmp/isql_vg_08032012.txt 2>&1 There are some suspicious "points to uninitialized bytes" messages. Source line numbers are not shown since I don't have the debug version. See: isql_vg_08032012.txt Anyone update on this?
This is a critical issue and it would be nice if it makes it into 2.5.2. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
isql_stacktrace_08032012.txt