Shopify / ghostferry

The swiss army knife of live data migrations
https://shopify.github.io/ghostferry
MIT License
693 stars 65 forks source link

InlineVerifyer: invalid memory address or nil pointer dereference #337

Open Strech opened 1 year ago

Strech commented 1 year ago

Ghostferry to terminated with panic about memory issue.

Backtrace

    /home/runner/work/ghostferry/ghostferry/inline_verifier.go:729 +0x159
github.com/Shopify/ghostferry.(*InlineVerifier).verifyBinlogBatch.func1(0xc00ac91240, 0xc000312300, 0xc000232290, 0x10, 0xc000019230, 0x24, 0xc000867180, 0x3, 0x64, 0xc0004ea910, ...)
    /home/runner/work/ghostferry/ghostferry/utils.go:20
github.com/Shopify/ghostferry.WithRetries(...)
    /home/runner/work/ghostferry/ghostferry/utils.go:39 +0x1d6
github.com/Shopify/ghostferry.WithRetriesContext(0x0, 0x0, 0x5, 0x0, 0xc000b22150, 0x812215, 0x1f, 0xc003adbef8, 0x31, 0x15)
    /home/runner/work/ghostferry/ghostferry/inline_verifier.go:730 +0x9f
github.com/Shopify/ghostferry.(*InlineVerifier).verifyBinlogBatch.func1.1(0x4d34557a4d343453, 0x6a4d222c223d557a)
    /home/runner/work/ghostferry/ghostferry/inline_verifier.go:474 +0xc6
github.com/Shopify/ghostferry.(*InlineVerifier).getFingerprintDataFromSourceDb(0xc000312300, 0xc000232290, 0x10, 0xc000019230, 0x24, 0x0, 0xc0004ea910, 0xc000867180, 0x3, 0x64, ...)
    /home/runner/work/ghostferry/ghostferry/inline_verifier.go:482 +0x85
github.com/Shopify/ghostferry.(*InlineVerifier).getFingerprintDataFromDb(0xc000312300, 0xc00000f068, 0xc000a3f9a0, 0xc000232290, 0x10, 0xc000019230, 0x24, 0x0, 0xc0004ea910, 0xc000867180, ...)
    /home/runner/work/ghostferry/ghostferry/table_schema_cache.go:79 +0x330
github.com/Shopify/ghostferry.(*TableSchema).FingerprintQuery(0xc0004ea910, 0xc000232290, 0x10, 0xc000019230, 0x24, 0x3, 0x0, 0x0)
    /opt/hostedtoolcache/go/1.16.5/x64/src/strings/strings.go:438 +0x325
strings.Join(0xc007c029a0, 0x2, 0x2, 0x8820c4, 0x1, 0xc004fba5f0, 0x4)
    /opt/hostedtoolcache/go/1.16.5/x64/src/strings/builder.go:123
strings.(*Builder).WriteString(...)
goroutine 3050 [running]:
[signal SIGSEGV: segmentation violation code=0x1 addr=0x125 pc=0x46e725]
panic: runtime error: invalid memory address or nil pointer dereference