freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
Re: [freetds] Segfault When Fetching NVARCHAR(MAX) Column
- From: Frediano Ziglio <freddy77 AT gmail.com>
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] Segfault When Fetching NVARCHAR(MAX) Column
- Date: Wed, 13 Jul 2011 15:30:51 +0200
Hi Marc,
I found the fix to SQLWCHAR/Py_UNICODE mismatch (just updated pyodbc
to 2.18) but there is still the segmentation fault. This programs
works as expected
import pyodbc
conn = pyodbc.connect('DSN=sqlexpress;UID=sa;PWD=XXXX')
cursor = conn.cursor()
cursor.execute("SELECT CAST(REPLICATE('a',511) AS NVARCHAR(MAX))")
cursor.fetchall()
(obviously changing connection string), but just changing 511 to 512
lead to segmentation fault.
Please open a case to pyodbc and let us know. I tested quite deeply
and it seems problem is in pyodbc (FreeTDS and unixODBC returns
correctly writing data correctly to pointers passed by pyodbc).
Frediano
2011/7/12 Marc DellaVolpe <marc.dellavolpe AT gmail.com>:
> I have run into a strange issue with SQLAlchemy/PyODBC/FreeTDS/unixODBC/
> SQL Server 2005 that I was hoping someone can shed some light on.
>
> I have two SQL Server 2005 instances with the same table created on
> each. The contents of the tables differ. The servers appear to be
> identical to each other in configuration except that the builds of SQL
> Server are different. When fetching rows on from the newer build,
> the fetch succeeds as normal. When fetching rows from the older
> build, pyodbc.so segfaults. The same query/fetch works fine in tsql/
> isql from the command line which leads me to believe that it is not a
> FreeTDS issue. I am not sure where the issue lies but I figured I
> would try with PyODBC and FreeTDS. Is it possible that there is some
> bad data in the table to cause this? I have attached a dump from each
> session. You will notice a truncation error message at the end of the
> segfaulting log, The longest row in that table is length 509 / data
> length 1018 so I am not sure about the context of this error message.
>
> As a temporary work around, I have changed the column to varchar(max)
> which works. As a last resort, I can apply the updates to the
> segfaulting database but I would greatly appreciate more insight into
> this issue before I do.
>
> The working instance:
>
> Microsoft SQL Server 2005 - 9.00.1406.00 (Intel X86)
> Mar 3 2007 18:40:02
> Copyright (c) 1988-2005 Microsoft Corporation
> Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
>
> Dump of session - http://pastebin.com/8NcDkvQy
>
> The segfaulting instance:
>
> Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
> Oct 14 2005 00:33:37
> Copyright (c) 1988-2005 Microsoft Corporation
> Workgroup Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
>
> Dump of session - http://pastebin.com/vAtPVZvD
>
> Thank You,
> - Marc
> _______________________________________________
> FreeTDS mailing list
> FreeTDS AT lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
>
-
[freetds] Segfault When Fetching NVARCHAR(MAX) Column,
Marc DellaVolpe, 07/12/2011
-
Re: [freetds] Segfault When Fetching NVARCHAR(MAX) Column,
Frediano Ziglio, 07/13/2011
- Re: [freetds] Segfault When Fetching NVARCHAR(MAX) Column, Frediano Ziglio, 07/13/2011
- Re: [freetds] Segfault When Fetching NVARCHAR(MAX) Column, Frediano Ziglio, 07/13/2011
-
Re: [freetds] Segfault When Fetching NVARCHAR(MAX) Column,
Frediano Ziglio, 07/13/2011
Archive powered by MHonArc 2.6.24.