Hello,

I noticed a problem when connecting to FB3 started as "firebird -s" (on
Linux). As I was able to reproduce the issue with versions as old as
April 2013 and I'm not completely sure relicts of my experiments can't
cause it, I would like to ask if someone else could try to reproduce.

What I do is start the "standalone" server with "/usr/sbin/firebird -s"
and connect to it e.g. with

  echo 'show tables;' | isql -ch UTF8 '172.17.2.1:test'

from another system. Without "-s" option everything works fine but with
"-s" the connection hangs.

>From the network communication and strace output (can be found at
http://www.mk-sys.cz/tmp/fb3-s/ both for "good" and "bad" case), it
seems that in both cases, the connection is established and first data
packet from client (428 bytes, looks like authentication) is read. While
in the multithreaded case, server reads configuration (firebird.conf,
databases.conf) and responds to the packet, forked child in standalone
case just calls poll() on connected socket again so that from that
moment on, both client and server wait for data from the other side.

Another question: while working on the inet connection code, I noticed
that the final part of INET_connect()

#ifdef WIN_NT
    MutexLockGuard forkGuard(forkMutex, FB_FUNCTION);
    if (forkThreadStarted)
    {
        SetEvent(forkEvent);
        CloseHandle(forkEvent);

        delete forkSockets;
        forkSockets = NULL;
    }
#endif

follows an infinite loop and there is no goto or break (two breaks in
the function but both before the start of this loop). Did I miss
something or is it a dead code and can be dropped? Or should it be moved
somewhere else?

                                                          Michal Kubecek


------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to