Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Panic #62

Closed
captncraig opened this issue Sep 18, 2014 · 5 comments
Closed

Panic #62

captncraig opened this issue Sep 18, 2014 · 5 comments

Comments

@captncraig
Copy link

I am getting a really odd panic:

fatal error: unexpected signal during runtime execution
[signal 0xc0000005 code=0x0 addr=0xb69709e590 pc=0x425875]

goroutine 25 [running]:
runtime.throw(0xa18620)
c:/go/src/pkg/runtime/panic.c:520 +0x7e fp=0x3cf6f0 sp=0x3cf6d8
runtime.sigpanic()
c:/go/src/pkg/runtime/os_windows.c:352 +0x4b fp=0x3cf708 sp=0x3cf6f0
runtime.mallocgc(0x50, 0x6892c1, 0x1)
c:/go/src/pkg/runtime/malloc.goc:154 +0x365 fp=0x3cf770 sp=0x3cf708
cnew(0x6892c0, 0x12, 0x1)
c:/go/src/pkg/runtime/malloc.goc:836 +0xc8 fp=0x3cf790 sp=0x3cf770
runtime.cnewarray(0x6892c0, 0x12)
c:/go/src/pkg/runtime/malloc.goc:849 +0x41 fp=0x3cf7b0 sp=0x3cf790
makeslice1(0x67a320, 0x12, 0x12, 0x3cf810)
c:/go/src/pkg/runtime/slice.goc:55 +0x54 fp=0x3cf7c8 sp=0x3cf7b0
runtime.makeslice(0x67a320, 0x12, 0x12, 0x0, 0x12, 0x12)
c:/go/src/pkg/runtime/slice.goc:36 +0xba fp=0x3cf7f8 sp=0x3cf7c8
unicode/utf16.Decode(0xc082122510, 0x12, 0x12, 0x0, 0x0, 0x0)
c:/go/src/pkg/unicode/utf16/utf16.go:87 +0x5d fp=0x3cf858 sp=0x3cf7f8
github.com/denisenkom/go-mssqldb.ucs22str(0xc0820109c0, 0x24, 0xc8, 0x0, 0x0, 0x0, 0x0)
D:/GoPath/src/github.com/denisenkom/go-mssqldb/tds.go:315 +0x3cb fp=0x3cf9c8 sp=0x3cf858
github.com/denisenkom/go-mssqldb.decodeUcs2(0xc0820109c0, 0x24, 0xc8, 0x0, 0x0)
D:/GoPath/src/github.com/denisenkom/go-mssqldb/types.go:767 +0x6b fp=0x3cfa68 sp=0x3cf9c8
github.com/denisenkom/go-mssqldb.decodeNChar(0xc0820109c0, 0x24, 0xc8, 0x0, 0x0)
D:/GoPath/src/github.com/denisenkom/go-mssqldb/types.go:775 +0x54 fp=0x3cfa98 sp=0x3cfa68
github.com/denisenkom/go-mssqldb.readShortLenType(0xc08212d818, 0xc082006840, 0x0, 0x0)
D:/GoPath/src/github.com/denisenkom/go-mssqldb/types.go:352 +0x2b3 fp=0x3cfb70 sp=0x3cfa98
github.com/denisenkom/go-mssqldb.parseRow(0xc082006840, 0xc0821a6240, 0x2, 0x2, 0xc082067760, 0x2, 0x2)
D:/GoPath/src/github.com/denisenkom/go-mssqldb/token.go:254 +0xd9 fp=0x3cfc38 sp=0x3cfb70
github.com/denisenkom/go-mssqldb.processResponse(0xc08200c660, 0xc08202e6e0)
D:/GoPath/src/github.com/denisenkom/go-mssqldb/token.go:362 +0x857 fp=0x3cff98 sp=0x3cfc38
runtime.goexit()
c:/go/src/pkg/runtime/proc.c:1445 fp=0x3cffa0 sp=0x3cff98
created by github.com/denisenkom/go-mssqldb.(*MssqlStmt).Query
D:/GoPath/src/github.com/denisenkom/go-mssqldb/mssql.go:212 +0x104
.... My code....

goroutine 16 [runnable]:
github.com/denisenkom/go-mssqldb.(_MssqlRows).Next(0xc082122180, 0xc08211e4a0, 0x2, 0x2, 0x0, 0x0)
D:/GoPath/src/github.com/denisenkom/go-mssqldb/mssql.go:275 +0x8d
database/sql.(_Rows).Next(0xc08200d5c0, 0x2)
c:/go/src/pkg/database/sql/sql.go:1542 +0xec
.... My code....

goroutine 19 [finalizer wait]:
runtime.park(0x416380, 0xa214d0, 0xa1f629)
c:/go/src/pkg/runtime/proc.c:1369 +0xac
runtime.parkunlock(0xa214d0, 0xa1f629)
c:/go/src/pkg/runtime/proc.c:1385 +0x42
runfinq()
c:/go/src/pkg/runtime/mgc0.c:2644 +0xdd
runtime.goexit()
c:/go/src/pkg/runtime/proc.c:1445

goroutine 20 [chan receive]:
database/sql.(*DB).connectionOpener(0xc082046400)
c:/go/src/pkg/database/sql/sql.go:583 +0x4f
created by database/sql.Open
c:/go/src/pkg/database/sql/sql.go:442 +0x283

It is a bit hard to replicate as it appears to be somewhat dependant on data, although I can't find a pattern to trigger it.

My query is "Select top(100) name,value from MyTable" where name is nvarchar(100) and value is int. I am scanning the columns into a string and int. It will work for some number of rows, and then panic.

@dimdin
Copy link
Collaborator

dimdin commented Sep 19, 2014

Please post the stack trace to the go-nuts list with your go version.

@captncraig
Copy link
Author

I did. They think it is heap corruption. I have a pretty simple replication, that hopefully you can reproduce.

https://gist.github.com/captncraig/dfb0224ff4dfab1022e6

Basically tries to read invalid columns from a table, and then it panics in fmt.Println while trying to print the error that Query returns.

Go 1.3.1 on Windows 8.1 to Sql server 2012.

@dimdin
Copy link
Collaborator

dimdin commented Sep 22, 2014

The heap corruption might be from the single-sign-on code. Can you try using SQL server authentication?

@captncraig
Copy link
Author

That seems reasonable. It does not occur with sql authentication, nor does it occur if I set

GODEBUG=efence=1

@dimdin dimdin closed this as completed in 37a468e Sep 23, 2014
@dimdin
Copy link
Collaborator

dimdin commented Sep 23, 2014

@captncraig Please try with the latest version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants