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

Go 1.6 App failed with message "panic: runtime error: cgo argument has Go pointer to Go pointer" #66

Closed
d2r2 opened this issue Apr 4, 2016 · 2 comments

Comments

@d2r2
Copy link

d2r2 commented Apr 4, 2016

Application works good on Go 1.5, but after migrating to Go 1.6 start collapse with message "panic: runtime error: cgo argument has Go pointer to Go pointer".

Application is trying to run sql script on Microsoft SQL sever via unixODBC+freetds driver bundle.

It seems, issue arises in api.SQLBindCol method:
panic(0xb76680, 0xc82021f0b0)
/usr/lib/go/src/runtime/panic.go:426 +0x4e9
github.com/alexbrainman/odbc/api.SQLBindCol(0x7f553c07be70, 0x80001, 0xc82028edb8, 0x8, 0xc82028ed98, 0xc820191680)
/home/ddyakov/Documents/gocode/src/github.com/alexbrainman/odbc/api/zapi_unix.go:28 +0x95

My notebook OS info:
Linux arch_linux_home 4.4.5-1-ARCH #1 SMP PREEMPT Thu Mar 10 07:38:19 CET 2016 x86_64 GNU/Linux

Full stack dump:
[GIN] 2016/04/04 - 14:45:35 | 500 | 3.59848508s | 127.0.0.1 | GET /queue_data5
2016-04-04T14:45:35.569 [ proxy] PANI runtime error: cgo argument has Go pointer to Go pointer
panic: runtime error: cgo argument has Go pointer to Go pointer [recovered]
panic: (*logrus.Entry) (0xc3aec0,0xc8202d2b80)

goroutine 31 [running]:
panic(0xc3aec0, 0xc8202d2b80)
/usr/lib/go/src/runtime/panic.go:464 +0x3e6
github.com/Sirupsen/logrus.Entry.log(0xc82006c600, 0xc820075170, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc53200, 0xc8202d2b40, ...)
/home/ddyakov/Documents/gocode/src/github.com/Sirupsen/logrus/entry.go:113 +0x62c
github.com/Sirupsen/logrus.(_Entry).Panic(0xc82006c640, 0xc8202830b0, 0x1, 0x1)
/home/ddyakov/Documents/gocode/src/github.com/Sirupsen/logrus/entry.go:158 +0x99
bitbucket.org/d2r2/go_avaya_cc_reports/proxy.(_cache).startDataPrepare.func1.1()
/home/ddyakov/Documents/gocode/src/bitbucket.org/d2r2/go_avaya_cc_reports/proxy/cache.go:92 +0x257
panic(0xb76680, 0xc82021f0b0)
/usr/lib/go/src/runtime/panic.go:426 +0x4e9
github.com/alexbrainman/odbc/api.SQLBindCol(0x7f553c07be70, 0x80001, 0xc82028edb8, 0x8, 0xc82028ed98, 0xc820191680)
/home/ddyakov/Documents/gocode/src/github.com/alexbrainman/odbc/api/zapi_unix.go:28 +0x95
github.com/alexbrainman/odbc.(_BufferLen).Bind(0xc82028ed98, 0x7f553c07be70, 0x0, 0xc820210008, 0xc82028edb8, 0x8, 0x8, 0xc820191680)
/home/ddyakov/Documents/gocode/src/github.com/alexbrainman/odbc/column.go:32 +0x5d
github.com/alexbrainman/odbc.(_BindableColumn).Bind(0xc82028ed80, 0x7f553c07be70, 0x0, 0xc82028ed80, 0x0, 0x0)
/home/ddyakov/Documents/gocode/src/github.com/alexbrainman/odbc/column.go:218 +0x84
github.com/alexbrainman/odbc.(_ODBCStmt).BindColumns(0xc8201fecd0, 0x0, 0x0)
/home/ddyakov/Documents/gocode/src/github.com/alexbrainman/odbc/odbcstmt.go:146 +0x3c9
github.com/alexbrainman/odbc.(_Stmt).Query(0xc820284570, 0xc8202845a0, 0x3, 0x3, 0x0, 0x0, 0x0, 0x0)
/home/ddyakov/Documents/gocode/src/github.com/alexbrainman/odbc/stmt.go:95 +0x311
database/sql.rowsiFromStatement(0x7f5551dda158, 0xc8202610a0, 0x7f5551dda118, 0xc820284570, 0xc820284480, 0x3, 0x3, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/database/sql/sql.go:1654 +0x3ba
database/sql.(_DB).queryConn(0xc8202124d0, 0xc8202610a0, 0xc82021f050, 0xc82028ed00, 0x33, 0xc820284480, 0x3, 0x3, 0xc82021f030, 0x0, ...)
/usr/lib/go/src/database/sql/sql.go:1118 +0x48b
database/sql.(_DB).query(0xc8202124d0, 0xc82028ed00, 0x33, 0xc820284480, 0x3, 0x3, 0xc82028ed01, 0x33, 0x0, 0x0)
/usr/lib/go/src/database/sql/sql.go:1078 +0x126
database/sql.(_DB).Query(0xc8202124d0, 0xc82028ed00, 0x33, 0xc820284480, 0x3, 0x3, 0x33, 0x0, 0x0)
/usr/lib/go/src/database/sql/sql.go:1061 +0xa3
database/sql.(_DB).QueryRow(0xc8202124d0, 0xc82028ed00, 0x33, 0xc820284480, 0x3, 0x3, 0xc800000000)
/usr/lib/go/src/database/sql/sql.go:1142 +0x63
github.com/d2r2/sqlg/sqlcore.(_StatementBatch).ExecQueryRow(0xc820234ca0, 0xc8202124d0, 0x1, 0x0, 0x0)
/home/ddyakov/Documents/gocode/src/github.com/d2r2/sqlg/sqlcore/statement.go:198 +0x786
bitbucket.org/d2r2/go_avaya_cc_reports/db.(_DatabaseSpec).createDatabase(0xc820204900, 0x0, 0x0)
/home/ddyakov/Documents/gocode/src/bitbucket.org/d2r2/go_avaya_cc_reports/db/db_spec.go:45 +0x36b
bitbucket.org/d2r2/go_avaya_cc_reports/db.(*DatabaseSpec).OpenDatabaseWithCreateIfNeeded(0xc820204900, 0xc8201fe910, 0x0, 0x0)
/home/ddyakov/Documents/gocode/src/bitbucket.org/d2r2/go_avaya_cc_reports/db/db_spec.go:89 +0x3a

@d2r2 d2r2 changed the title Go 1.6 App failed with message "panic: runtime error: cgo argument has Go pointer to Go pointer [recovered]" Go 1.6 App failed with message "panic: runtime error: cgo argument has Go pointer to Go pointer" Apr 4, 2016
@alexbrainman
Copy link
Owner

I think your issue is a duplicate of issue #65. Do you agree?

I will try and fix #65 when I have some free time. Hopefully this week.

Alex

@d2r2
Copy link
Author

d2r2 commented Apr 5, 2016

Just discovered that #65 point to the same function SQLBindCol. Absolutely agree. Close my ticket. Thanks Alex. Denis

@d2r2 d2r2 closed this as completed Apr 5, 2016
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