SIGSEGV in libodbc.so.2

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

SIGSEGV in libodbc.so.2

Reza Taheri

Hi,

We are developing an industry-standard performance benchmark (TPC-V) using PGSQL. The benchmark has a Java wrapper that uses JNI to call the C++ code that uses odbc. It was going well until a few weeks ago when we started having the following type of failure with unixODBC 2.2.14:

 

#

# A fatal error has been detected by the Java Runtime Environment:

#

#  SIGSEGV (0xb) at pc=0x0000003077a3ac47, pid=20808, tid=140346153056000

#

# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode linux-amd64 compressed oops)

# Problematic frame:

# C  [libodbc.so.2+0x3ac47]  chmod+0x3ac47

#

# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

#

# An error report file with more information is saved as:

# /opt/VDriver/jar/hs_err_pid20808.log

#

# If you would like to submit a bug report, please visit:

#   http://bugreport.sun.com/bugreport/crash.jsp

#

 

This happens when we increase the number of threads of execution. It doesn’t happen with 10 threads; happens every single time at the very beginning of the test run with 20 threads.

 

This was a surprise since it started happening when we made minimal code changes that shouldn’t have anything to do with odbc calls. We don’t think we changed anything directly related to how we use odbc.

 

Just to be sure, I downloaded and installed rev 2.3.2 of unixODBC. We still see failures although the signature has changed a little bit:

#

# A fatal error has been detected by the Java Runtime Environment:

#

#  SIGSEGV (0xb) at pc=0x00007fd54a893489, pid=14670, tid=140552842364672

#

# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode linux-amd64 compressed oops)

# Problematic frame:

# C  [libodbc.so.2+0x18489]  SQLFreeStmt+0x79

#

# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

#

# An error report file with more information is saved as:

# /opt/VDriver/jar/hs_err_pid14670.log

#

# If you would like to submit a bug report, please visit:

#   http://bugreport.sun.com/bugreport/crash.jsp

#

 

Any ideas how I can go about debugging this? Sorry about asking such an open-ended question; I am not sure where to start.

 

Thanks,

Reza


_______________________________________________
unixODBC-support mailing list
[hidden email]
http://mailman.unixodbc.org/mailman/listinfo/unixodbc-support
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: SIGSEGV in libodbc.so.2

Nick Gorham-2
On 14/07/14 20:05, Reza Taheri wrote:

Hi,

We are developing an industry-standard performance benchmark (TPC-V) using PGSQL. The benchmark has a Java wrapper that uses JNI to call the C++ code that uses odbc. It was going well until a few weeks ago when we started having the following type of failure with unixODBC 2.2.14:

 

#

# A fatal error has been detected by the Java Runtime Environment:

#

#  SIGSEGV (0xb) at pc=0x0000003077a3ac47, pid=20808, tid=140346153056000

#

# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode linux-amd64 compressed oops)

# Problematic frame:

# C  [libodbc.so.2+0x3ac47]  chmod+0x3ac47

#

# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

#

# An error report file with more information is saved as:

# /opt/VDriver/jar/hs_err_pid20808.log

#

# If you would like to submit a bug report, please visit:

#   http://bugreport.sun.com/bugreport/crash.jsp

#

 

This happens when we increase the number of threads of execution. It doesn’t happen with 10 threads; happens every single time at the very beginning of the test run with 20 threads.

 

This was a surprise since it started happening when we made minimal code changes that shouldn’t have anything to do with odbc calls. We don’t think we changed anything directly related to how we use odbc.

 

Just to be sure, I downloaded and installed rev 2.3.2 of unixODBC. We still see failures although the signature has changed a little bit:

#

# A fatal error has been detected by the Java Runtime Environment:

#

#  SIGSEGV (0xb) at pc=0x00007fd54a893489, pid=14670, tid=140552842364672

#

# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode linux-amd64 compressed oops)

# Problematic frame:

# C  [libodbc.so.2+0x18489]  SQLFreeStmt+0x79

#

# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

#

# An error report file with more information is saved as:

# /opt/VDriver/jar/hs_err_pid14670.log

#

# If you would like to submit a bug report, please visit:

#   http://bugreport.sun.com/bugreport/crash.jsp

#

 

Any ideas how I can go about debugging this? Sorry about asking such an open-ended question; I am not sure where to start.

 

Thanks,

Reza


Start with 2.3.3pre release, there are further fixes in that.

--
Nick

_______________________________________________
unixODBC-support mailing list
[hidden email]
http://mailman.unixodbc.org/mailman/listinfo/unixodbc-support
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: SIGSEGV in libodbc.so.2

Reza Taheri

Hi Nick,

I installed unixODBC-2.3.3-pre, and still get the error


Thanks,
Reza

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Nick Gorham
Sent: Monday, July 14, 2014 12:41 PM
To: Support for the unixODBC project
Subject: Re: [unixODBC-support] SIGSEGV in libodbc.so.2

 

On 14/07/14 20:05, Reza Taheri wrote:

Hi,

We are developing an industry-standard performance benchmark (TPC-V) using PGSQL. The benchmark has a Java wrapper that uses JNI to call the C++ code that uses odbc. It was going well until a few weeks ago when we started having the following type of failure with unixODBC 2.2.14:

 

#

# A fatal error has been detected by the Java Runtime Environment:

#

#  SIGSEGV (0xb) at pc=0x0000003077a3ac47, pid=20808, tid=140346153056000

#

# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode linux-amd64 compressed oops)

# Problematic frame:

# C  [libodbc.so.2+0x3ac47]  chmod+0x3ac47

#

# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

#

# An error report file with more information is saved as:

# /opt/VDriver/jar/hs_err_pid20808.log

#

# If you would like to submit a bug report, please visit:

#   http://bugreport.sun.com/bugreport/crash.jsp

#

 

This happens when we increase the number of threads of execution. It doesn’t happen with 10 threads; happens every single time at the very beginning of the test run with 20 threads.

 

This was a surprise since it started happening when we made minimal code changes that shouldn’t have anything to do with odbc calls. We don’t think we changed anything directly related to how we use odbc.

 

Just to be sure, I downloaded and installed rev 2.3.2 of unixODBC. We still see failures although the signature has changed a little bit:

#

# A fatal error has been detected by the Java Runtime Environment:

#

#  SIGSEGV (0xb) at pc=0x00007fd54a893489, pid=14670, tid=140552842364672

#

# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode linux-amd64 compressed oops)

# Problematic frame:

# C  [libodbc.so.2+0x18489]  SQLFreeStmt+0x79

#

# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

#

# An error report file with more information is saved as:

# /opt/VDriver/jar/hs_err_pid14670.log

#

# If you would like to submit a bug report, please visit:

#   http://bugreport.sun.com/bugreport/crash.jsp

#

 

Any ideas how I can go about debugging this? Sorry about asking such an open-ended question; I am not sure where to start.

 

Thanks,

Reza


Start with 2.3.3pre release, there are further fixes in that.

--
Nick


_______________________________________________
unixODBC-support mailing list
[hidden email]
http://mailman.unixodbc.org/mailman/listinfo/unixodbc-support
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: SIGSEGV in libodbc.so.2

Nick Gorham-2
On 16/07/14 03:07, Reza Taheri wrote:

Hi Nick,

I installed unixODBC-2.3.3-pre, and still get the error


Thanks,
Reza


Not sure what to suggest, working with 10 threads and failing with 20 indicates to me that either a resource is running out or something is going off the end of an array.

I would try with a different driver, and other than that look at logs and try and work backwards. If its actually seg faulting in SQLFreeStmt then the chances is the handle being passed is not valid in some way.

--
Nick

_______________________________________________
unixODBC-support mailing list
[hidden email]
http://mailman.unixodbc.org/mailman/listinfo/unixodbc-support
Loading...