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: assertion failed: write: circular dependency occurred #861

Closed
wsnoble opened this issue Jan 25, 2017 · 11 comments
Closed

panic: assertion failed: write: circular dependency occurred #861

wsnoble opened this issue Jan 25, 2017 · 11 comments

Comments

@wsnoble
Copy link

wsnoble commented Jan 25, 2017

I tried pushing a large directory structure with this command:

drive push -ignore-checksum=false -quiet 2012-fdr-psm

It yielded the error

panic: assertion failed: write: circular dependency occurred

goroutine 1131507 [running]:
panic(0x8a7240, 0xc503d00850)
/net/noble/vol1/home/noble/software/go/src/runtime/panic.go:500 +0x1a1
github.com/boltdb/bolt._assert(0xc529535100, 0x97fabe, 0x23, 0x0, 0x0, 0x0)
/net/noble/vol1/home/noble/work/src/github.com/boltdb/bolt/db.go:1029 +0xff
..

I am running

bash-4.1$ drive version
drive version: 0.3.9.1
Commit Hash: <CURRENT_COMMIT>
Go Version: <GO_VERSION>
OS: <OS_INFO>
BuildTime:

My OS is CentOS Release 6.8 with linux kernel 2.6.32.

Full output log is attached.

drive.txt

@wsnoble
Copy link
Author

wsnoble commented Jan 25, 2017

Follow-up: Removing the "-ignore-checksum" flag gets rid of the error.

@odeke-em
Copy link
Owner

Hello there @wsnoble, thank you for the issue and welcome to drive!

So for the past 1 month or so, we've been plagued by such boltdb crashes but
excluding -ignore-checksum is a first, thanks for trying that.

There are a few issues similar to this one:

and a wiki entry was made here https://github.com/odeke-em/drive/wiki/Boltdb-breaks-drive-with-(panic:-invalid-page-type:)-or-(panic:--above-high-water-mark).
Please take a look at the wiki entry and see if that does anything for you.

@wsnoble
Copy link
Author

wsnoble commented Jan 27, 2017 via email

@odeke-em
Copy link
Owner

@wsnoble thanks for trying it out.
drive-gen can be got by running

$ go get -u github.com/odeke-em/drive/drive-gen

and then it should be available in your $GOPATH/bin

@wsnoble
Copy link
Author

wsnoble commented Jan 30, 2017

OK, that worked. But I still get an error:

panic: page 2 already freed

goroutine 1127304 [running]:
panic(0x8a7240, 0xc511a0a630)
/net/noble/vol1/home/noble/software/go/src/runtime/panic.go:500 +0x1a1
github.com/boltdb/bolt.(*freelist).free(0xc511a0c390, 0x23, 0x7ffbb418c000)
/net/noble/vol1/home/noble/work/src/github.com/boltdb/bolt/freelist.go:121 +0x2c0

Is there anything else I might try, or further debug information that you would find useful?

Bill
drive.txt

@odeke-em
Copy link
Owner

odeke-em commented Feb 3, 2017

Hey @wsnoble, please get and test out with the latest boltdb as per boltdb/bolt#654
You can do so by running

$ go get -u -v github.com/odeke-em/drive/drive-gen && drive-gen

and let me know if the problem persists and I'll report back to the boltdb issue.

@wsnoble
Copy link
Author

wsnoble commented Feb 4, 2017

I did this, but I get the same problem. Attached is a log showing the output when I issued the command you suggested, followed by the panic message issued from my push command.
drive.txt

@odeke-em
Copy link
Owner

odeke-em commented Feb 4, 2017

Ah crap, sorry that you've had so much trouble getting it to work. Let me cross-compile a binary for you from my computer.

@odeke-em
Copy link
Owner

odeke-em commented Feb 4, 2017

Please see https://drive.google.com/open?id=0By5qQkvRAeV2aGh5Ukt1Tm9zZnc
or below

$ cat md5-v0.3.9.1.txt 
$ md5 drive_linux 
MD5 (drive_linux) = a63ea02ab301371c8e102af2b88bfd7c
URL: https://drive.google.com/open?id=0By5qQkvRAeV2RHFubnd2NE1GNGM

@wsnoble
Copy link
Author

wsnoble commented Feb 4, 2017

Alas! Your binary also fails, with an identical error (attached). :(
drive.txt

@odeke-em
Copy link
Owner

odeke-em commented Feb 7, 2017

Thanks @wsnoble for the report. Perhaps this is connected to the OS treatment by
Go's runtime of CentOS and how boltdb behaves, as the same code works alright on OSX but
the cross-compiled binary fails.
Also this issue is a duplicate of #846.

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

No branches or pull requests

2 participants