Thread: PG7.4 / psqlodbc / log_duration=true & client_min_messages=log / Can't connect
Dear List, PostgreSQL 7.4 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.3.1 (Mandrake Linux 9.2 3.3.1-2mdk) psqlodbc versions: 07_03_0100 & 07_03_0200 I've found a minor bug whilst using psqlodbc to connect to PostgreSQL. I have found that if you set in postgresql.conf: client_min_messages=log log_duration=true you are unable to connect to any db using the psqlodbc driver. Crystal Reports for example advises 'ODBC error: Could not connect to the server; socket is already connected'. psql and pgadmin3 work fine, although they are running on the same box as the server and under linux :). Setting client_min_messages=info and restarting PostgreSQL allows everything to work fine again. None of the other settings if set to true in the 'What to log' section seem to cause any problems. Below I have pasted a typical successful connection and an unsuccessful one as logged in syslog. *** SUCCESSFUL CONNECTION *** 2003-12-16 20:08:19 [5579] LOG: connection received: host=192.168.196.10 port=1143 2003-12-16 20:08:19 [5579] LOG: connection authorized: user=postgres database=pgbench 2003-12-16 20:08:19 [5579] LOG: statement: 2003-12-16 20:08:19 [5579] LOG: statement: select version() 2003-12-16 20:08:19 [5579] LOG: statement: set DateStyle to 'ISO' 2003-12-16 20:08:19 [5579] LOG: statement: set geqo to 'OFF' 2003-12-16 20:08:19 [5579] LOG: statement: set extra_float_digits to 2 2003-12-16 20:08:19 [5579] LOG: statement: select oid from pg_type where typname='lo' 2003-12-16 20:08:19 [5579] LOG: statement: select pg_client_encoding() 2003-12-16 20:08:19 [5579] LOG: statement: select relname, nspname, relkind from pg_catalog.pg_class, pg_catalog.pg_namespace where relkind in ('r', 'v') and relname !~ '^pg_|^dd_' and pg_namespace.oid = relnamespace order by nspname, relname *** UNSUCCESSFUL CONNECTION *** 2003-12-16 20:10:47 [5709] LOG: connection received: host=192.168.196.10 port=1145 2003-12-16 20:10:47 [5709] LOG: connection authorized: user=postgres database=pgbench 2003-12-16 20:10:47 [5709] LOG: statement: 2003-12-16 20:10:47 [5709] LOG: duration: 0.882 ms 2003-12-16 20:10:47 [5710] LOG: connection received: host=192.168.196.10 port=1146 2003-12-16 20:10:47 [5710] LOG: connection authorized: user=postgres database=pgbench 2003-12-16 20:10:47 [5710] LOG: statement: 2003-12-16 20:10:47 [5710] LOG: duration: 0.856 ms Client now complains that there is no server. Best Regards, Tim Knowles
Re: PG7.4 / psqlodbc / log_duration=true & client_min_messages=log / Can't connect
From
Tom Lane
Date:
tim <twknowles@uklinux.net> writes: > I've found a minor bug whilst using psqlodbc to connect to PostgreSQL. I have > found that if you set in postgresql.conf: > client_min_messages=log > log_duration=true > you are unable to connect to any db using the psqlodbc driver. Hm. This sounds like psqlodbc is unprepared to handle a NOTICE message arriving during its startup; which if true would imply other corner-case bugs besides this one. I am not sure if any of the pgsql ODBC guys pay close attention to pgsql-bugs. If you don't get any useful help, try reposting on the pgsql-odbc list. regards, tom lane