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

restic panics if writes to the SFTP backend fail #550

Closed
Crest opened this issue Jul 26, 2016 · 4 comments
Closed

restic panics if writes to the SFTP backend fail #550

Crest opened this issue Jul 26, 2016 · 4 comments
Labels
state: need implementing cause/request established, need work/solution type: bug

Comments

@Crest
Copy link

Crest commented Jul 26, 2016

Output of restic version

restic 0.1.0 (v0.1.0-561-gb8c7622)
compiled at 2016-07-19 17:07:04 with go1.6.2

Expected behavior

Restic attempts to reconnect (or aborts the backup/restore).

Actual behavior

The restic process crashes with an unhandled panic().

scan [/home/crest/old-home/crest]
scanned 11758 directories, 69525 files in 0:06
Fssh_packet_write_wait: Connection to 138.201.35.217 port 23: Broken pipe0 errors  ETA 25:54 
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x28 pc=0x6df5ce]

goroutine 24905 [running]:
panic(0x998f60, 0xc820012150)
    /usr/local/go/src/runtime/panic.go:481 +0x3e6
github.com/pkg/sftp.(*File).Write(0x0, 0xc833276000, 0x455a8b, 0x455a8b, 0xc8230d97d8, 0x0, 0x0)
    /tmp/restic-build-630373645/src/github.com/pkg/sftp/client.go:971 +0x4e
restic/backend/sftp.(*SFTP).Save(0xc82015c000, 0xa49a50, 0x4, 0xc8219eb700, 0x40, 0xc833276000, 0x455a8b, 0x455a8b, 0x800e63798, 0xc821f9cd20)
    /tmp/restic-build-630373645/src/restic/backend/sftp/sftp.go:326 +0x393
restic/repository.(*Repository).savePacker(0xc82006e720, 0xc82006d0c0, 0x0, 0x0)
    /tmp/restic-build-630373645/src/restic/repository/packer_manager.go:115 +0x747
restic/repository.(*Repository).SaveAndEncrypt(0xc82006e720, 0x10d1059b94c94e00, 0xc82d074000, 0x296810, 0x300000, 0xc8230d9e88, 0x0, 0x0, 0x0, 0x0, ...)
    /tmp/restic-build-630373645/src/restic/repository/repository.go:211 +0x76f
restic.(*Archiver).Save(0xc8242453b0, 0x296800, 0xc82d074000, 0x296810, 0x300000, 0x10d1059b94c94e0b, 0x7ca93e5baf2e869d, 0xd97bec525f202584, 0xbe8e4130b45d50cf, 0x0, ...)
    /tmp/restic-build-630373645/src/restic/archiver.go:102 +0x3d2
restic.(*Archiver).saveChunk(0xc8242453b0, 0x12fb392, 0x296810, 0xe7cfef2a00000, 0xc82d074000, 0x296810, 0x300000, 0xc8202bfa20, 0x800df0850, 0xc820188030, ...)
    /tmp/restic-build-630373645/src/restic/archiver.go:162 +0xe3
created by restic.(*Archiver).SaveFile
    /tmp/restic-build-630373645/src/restic/archiver.go:237 +0x556
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x28 pc=0x6df5ce]

goroutine 24957 [running]:
panic(0x998f60, 0xc820012150)
    /usr/local/go/src/runtime/panic.go:481 +0x3e6
github.com/pkg/sftp.(*File).Write(0x0, 0xc834ce2000, 0x9359f8, 0x9359f8, 0xc8245857d8, 0x0, 0x0)
    /tmp/restic-build-630373645/src/github.com/pkg/sftp/client.go:971 +0x4e
restic/backend/sftp.(*SFTP).Save(0xc82015c000, 0xa49a50, 0x4, 0xc821606b00, 0x40, 0xc834ce2000, 0x9359f8, 0x9359f8, 0x800e63798, 0xc824312960)
    /tmp/restic-build-630373645/src/restic/backend/sftp/sftp.go:326 +0x393
restic/repository.(*Repository).savePacker(0xc82006e720, 0xc821475780, 0x0, 0x0)
    /tmp/restic-build-630373645/src/restic/repository/packer_manager.go:115 +0x747
restic/repository.(*Repository).SaveAndEncrypt(0xc82006e720, 0xde7275ae1d9bf500, 0xc83dbaa000, 0x54dc6e, 0x5dc000, 0xc824585e88, 0x0, 0x0, 0x0, 0x0, ...)
    /tmp/restic-build-630373645/src/restic/repository/repository.go:211 +0x76f
restic.(*Archiver).Save(0xc8242453b0, 0x54dc00, 0xc83dbaa000, 0x54dc6e, 0x5dc000, 0xde7275ae1d9bf5dc, 0x10151768c2f82f8a, 0x8e2e883147f51130, 0xc821452984740b2d, 0x0, ...)
    /tmp/restic-build-630373645/src/restic/archiver.go:102 +0x3d2
restic.(*Archiver).saveChunk(0xc8242453b0, 0x18b1d95, 0x54dc6e, 0x830d359e00000, 0xc83dbaa000, 0x54dc6e, 0x5dc000, 0xc8202bfa20, 0x800df0850, 0xc820188030, ...)
    /tmp/restic-build-630373645/src/restic/archiver.go:162 +0xe3
created by restic.(*Archiver).SaveFile
    /tmp/restic-build-630373645/src/restic/archiver.go:237 +0x556

Steps to reproduce the behavior

Kill the network connection while restic is writing a backup to the SFTP backend.

@fd0
Copy link
Member

fd0 commented Jul 26, 2016

Thanks for the report

@fd0 fd0 added the type: bug label Jul 26, 2016
@wscott
Copy link

wscott commented Sep 3, 2016

I reported a similar bug #592 and the error handling of the SFTP backend was much improved. You may want to test this case again.

@fawick
Copy link
Member

fawick commented Oct 8, 2017

Does this panic still occur with 0.7.3?

@fd0
Copy link
Member

fd0 commented May 26, 2018

I think this is a duplicate of #353, the sftp connection was dropped and restic did not disconnect. I'm closing this as a duplicate. Thanks!

@fd0 fd0 closed this as completed May 26, 2018
@fd0 fd0 added duplicate state: need implementing cause/request established, need work/solution labels May 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
state: need implementing cause/request established, need work/solution type: bug
Projects
None yet
Development

No branches or pull requests

4 participants