Skip to content

panic: 64bit unaligned in arm32 #577

@nekohasekai

Description

@nekohasekai

Version: f3bb364

fatal error: sync: unlock of unlocked mutex

goroutine 11 [running]:
sync.fatal({0xb6e53f9e, 0x1e})
        $GOROOT/src/runtime/panic.go:1061 +0x24
sync.(*Mutex).unlockSlow(0x8e0a7034, 0xffffffff)
        $GOROOT/src/sync/mutex.go:229 +0x38
sync.(*Mutex).Unlock(0x8e0a7034)
        $GOROOT/src/sync/mutex.go:223 +0x44
go.etcd.io/bbolt.(*Tx).close(0x8e145cc0)
        pkg/mod/go.etcd.io/bbolt@v0.0.0/tx.go:314 +0x1e4
go.etcd.io/bbolt.(*Tx).rollback(0x8e145cc0)
        pkg/mod/go.etcd.io/bbolt@v0.0.0/tx.go:299 +0x13c
go.etcd.io/bbolt.(*DB).Update.func1()
        pkg/mod/go.etcd.io/bbolt@v0.0.0/db.go:858 +0x28
panic({0xb7d08ea8, 0xb7e7c630})
        $GOROOT/src/runtime/panic.go:914 +0x26c
runtime/internal/atomic.panicUnaligned()
        $GOROOT/src/runtime/internal/atomic/unaligned.go:8 +0x2c
runtime/internal/atomic.Xadd64(0x8e0a6fa4, 0x1)
        $GOROOT/src/runtime/internal/atomic/atomic_arm.s:258 +0x14
go.etcd.io/bbolt.(*TxStats).IncPageCount(...)
        pkg/mod/go.etcd.io/bbolt@v0.0.0/tx.go:683
go.etcd.io/bbolt.(*TxStats).add(0x8e0a6fa4, 0x8e145cf0)
        pkg/mod/go.etcd.io/bbolt@v0.0.0/tx.go:642 +0xec
go.etcd.io/bbolt.(*Tx).close(0x8e145cc0)
        pkg/mod/go.etcd.io/bbolt@v0.0.0/tx.go:322 +0x25c
go.etcd.io/bbolt.(*Tx).Commit(0x8e145cc0)
        pkg/mod/go.etcd.io/bbolt@v0.0.0/tx.go:230 +0x450
go.etcd.io/bbolt.(*DB).Update(0x8e0a6f20, 0x8e04cf90)
        pkg/mod/go.etcd.io/bbolt@v0.0.0/db.go:873 +0x100
go.etcd.io/bbolt.(*batch).run(0x8e150e20)
        pkg/mod/go.etcd.io/bbolt@v0.0.0/db.go:981 +0x110
sync.(*Once).doSlow(0x8e150e28, 0x8e04cfe4)
        $GOROOT/src/sync/once.go:74 +0xc0
sync.(*Once).Do(0x8e150e28, 0x8e04cfe4)
        $GOROOT/src/sync/once.go:65 +0x40
go.etcd.io/bbolt.(*batch).trigger(...)
        pkg/mod/go.etcd.io/bbolt@v0.0.0/db.go:963
created by time.goFunc
        $GOROOT/src/time/sleep.go:176 +0x30

Related code:

bbolt/tx.go

Lines 26 to 43 in ef06562

type Tx struct {
writable bool
managed bool
db *DB
meta *common.Meta
root Bucket
pages map[common.Pgid]*common.Page
stats TxStats
commitHandlers []func()
// WriteFlag specifies the flag for write-related methods like WriteTo().
// Tx opens the database file with the specified flag to copy the data.
//
// By default, the flag is unset, which works well for mostly in-memory
// workloads. For databases that are much larger than available RAM,
// set the flag to syscall.O_DIRECT to avoid trashing the page cache.
WriteFlag int
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions