From: | Boszormenyi Zoltan <zb(at)cybertec(dot)at> |
---|---|
To: | Hiroshi Inoue <inoue(at)tpf(dot)co(dot)jp> |
Cc: | Hiroshi Saito <hiroshi(at)winpg(dot)jp>, pgsql-odbc(at)postgresql(dot)org, Hans-Jürgen Schönig <hs(at)cybertec(dot)at> |
Subject: | Re: Error reporting goes into an infinite loop when compiled --with-odbcver=0x0250 |
Date: | 2012-09-09 07:55:11 |
Message-ID: | 504C4B5F.6080606@cybertec.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
Hi,
2012-09-08 01:51 keltezéssel, Hiroshi Inoue írta:
> Hi,
>
> Sorry for the late reoly.
no problem, it seems you didn't receive the personal copies of
my mails. There seems to be a problem with reverse DNS
on your side of the of the globe, I got this for the mails in which
I sent the attachments:
---8<------8<------8<------8<------8<---
The mail system
<hiroshi(at)winpg(dot)jp>: host winpg.jp[219.94.251.195] said: 450 4.7.1 Client host
rejected: cannot find your hostname, [87.118.86.135] (in reply to RCPT TO
command)
Reporting-MTA: dns; km31432.keymachine.de
X-Postfix-Queue-ID: 23F503900523
X-Postfix-Sender: rfc822;zb(at)cybertec(dot)at
Arrival-Date: Fri, 31 Aug 2012 11:21:41 +0000 (UTC)
Final-Recipient: rfc822;hiroshi(at)winpg(dot)jp
Original-Recipient:rfc822;hiroshi(at)winpg(dot)jp
Action: failed
Status: 4.7.1
Remote-MTA: dns; winpg.jp
Diagnostic-Code: smtp; 450 4.7.1 Client host rejected: cannot find your
hostname, [87.118.86.135]
---8<------8<------8<------8<------8<---
> (2012/09/02 2:13), Boszormenyi Zoltan wrote:
>> Hi,
>>
>> 2012-09-01 17:22 keltezéssel, Boszormenyi Zoltan írta:
>>> Hi,
>>>
>>> 2012-09-01 11:19 keltezéssel, Hiroshi Inoue írta:
>>>> Hi,
>>>>
>>>> (2012/08/31 20:21), Boszormenyi Zoltan wrote:
>>>>> Hi,
>>>>>
>>>>> we had to recently test psqlODBC with an older application
>>>>> which doesn't expect ODBC 3.x.
>>>>>
>>>>> The problem is that the client locks up as soon as it encounters
>>>>> an error of any kind, like restarting the server from under the client
>>>>> or simply executing a bad query.
>>>>>
>>>>> After debugging the problem and reading the code of both
>>>>> unixODBC 2.3.1 and psqlODBC (version 09.00.0310 and 09.01.0200),
>>>>> I discovered that the DriverManager calls the driver's SQLError()
>>>>> and SQLGetDiagRec() in a loop
>>>>
>>>> Does the DriverManager call both SQLError() and SQLGetDiagRec()?
>>>
>>> Yes, it detects which is supported and calls that in the error handler
>>> part
>>> of SQLExecute(). In case psqlODBC is compiled using
>>> --with-odbcver=0x0250,
>>> SQLGetDiagRec() is naturally not supported.
>>>
>>>> Could you send me (loop part of) the Mylog output?
>>>
>>> I attached the unixODBC tracefile (/tmp/Trace.txt), there is no "mylog"
>>> lines in it. I execute a single "select * from test;" and this table
>>> doesn't exist.
>>> The trace file shows that the error code is repeated ad infinitum.
>>>
>>> But for my debugging, I didn't use the ODBC tracing, I added my extra
>>> printf()s
>>> so I can see on the client terminal what is going on.
>>
>> Attached is the mylog output for the vanilla psqlODBC 09.01.0200
>> which also shows the infinite loop.
>
> Thanks.
>
> Clearing error info seems to cause the infinite loop.
>
> Simply removing the follwoing code would solve the bug.
> COuld you try it?
>
> if (error->errorpos >= msglen)
> {
> ER_Destructor(error);
> *pgerror = NULL;
> }
Yes, it also solved the infinite loop. But then using the
PODBC_ERROR_CLEAR flag in PGAPI_Error() is unneeded.
Nothing else checks for this flag. Attached is the new patch,
tested with Valgrind, no leaks found in psqlodbc. The only
leaks reported were inside isql and libreadline.
>
> regards,
> Hiroshi Inoue
>
>
>
--
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de
http://www.postgresql.at/
Attachment | Content-Type | Size |
---|---|---|
psqlodbc-odbc2.5-fix1.patch | text/x-patch | 1.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | ranjeeth kumar | 2012-09-10 04:32:04 | Re: Regarding PostgreSQL BIT datatype binding in ODBC....... |
Previous Message | Hiroshi Inoue | 2012-09-07 23:51:03 | Re: Error reporting goes into an infinite loop when compiled --with-odbcver=0x0250 |