Commit Graph

972 Commits (f9d3ff664842d4d0f7d73f29c64433a415575c34)

Author SHA1 Message Date
Josh Rickmar f9d3ff6648 Fix incorrect unsafe usage
After checkptr fixes by 2fc6815c, it was discovered that new issues
were hit in production systems, in particular when a single process
opened and updated multiple separate databases.  This indicates that
some bug relating to bad unsafe usage was introduced during this
commit.

This commit combines several attempts at fixing this new issue.  For
example, slices are once again created by slicing an array of "max
allocation" elements, but this time with the cap set to the intended
length.  This operation is espressly permitted according to the Go
wiki, so it should be preferred to type converting a
reflect.SliceHeader.
2020-04-28 20:30:23 +00:00
chyroc a8af23b57f
opt: reuse var leafPageElementSize (#215) 2020-04-23 17:56:04 -07:00
James Ravn 6dc724cf03
Clarify transaction section (#59)
Even nested read-only transactions can cause deadlocks. This is due to golang's RWMutex behaviour.
It doesn't allow readers to acquire a lock if a write lock is pending. It's possible for a child read-only
transaction to block trying to acquire `mmaplock.RLock`, while a writer is trying to acquire
`mmaplock.Lock`. As a result, the parent transaction never releases its read lock on `mmaplock`, and the
application deadlocks.

This wasn't clear to me from the provided docs, which just mentions read/write and read transactions being nested.
2020-04-06 14:46:16 -07:00
Gyuho Lee 68cc10a767
Merge pull request #210 from tmm1/patch-1
Remove unused import to fix arm builds
2020-03-19 13:29:37 -07:00
Aman Gupta 52871c4623
Remove unused import to fix arm builds 2020-03-19 12:15:01 -07:00
Gyuho Lee 4d27a42422
Merge pull request #206 from lzhfromustc/4_Fatal_misusages
Fix the misusage of t.Fatal() in 4 test functions
2020-03-19 11:27:51 -07:00
Gyuho Lee a74531a954
Merge pull request #209 from d2r2/d2r2-fix-unexpected-delete-bucket-error
Fix unexpected delete bucket error: "delete bucket: incompatible value"
2020-03-19 11:27:32 -07:00
Gyuho Lee 2fc6815ca0
Merge pull request #201 from jrick/checkptr
Fix unsafe pointer conversions caught by Go 1.14 checkptr
2020-03-19 11:26:25 -07:00
Josh Rickmar 543c40ab41 Fix unsafe pointer conversions caught by Go 1.14 checkptr 2020-03-18 21:18:39 -04:00
Denis Dyakov c41b6f7c53 Fix unexpected delete bucket error 2020-03-13 23:40:49 +06:00
Ziheng Liu 59e65f9618 Fix the misusage of t.Fatal() in 4 test functions 2020-03-03 23:00:28 -05:00
Nicolas Lepage da442c51f1 Add github.com/philippgille/gokv in the list of Projects Using Bolt (#200) 2020-01-21 09:05:14 -08:00
Ryan Wise 126e837046 fix panic on install on unix systems (#198) 2020-01-06 12:31:24 -08:00
Steve Gore 0b7b41e21b Simple grammar fix (#191) 2019-11-28 15:57:01 -08:00
Justin Kolberg 7f8bb47fca Add support for aix (#189)
* add support for aix

Signed-off-by: Justin Kolberg <amd.prophet@gmail.com>

* rename bolt_aix.go to bolt_unix_aix.go

Signed-off-by: Justin Kolberg <amd.prophet@gmail.com>

* use go 1.12

Signed-off-by: Justin Kolberg <amd.prophet@gmail.com>
2019-11-22 12:31:57 -08:00
Gyuho Lee 96e95490d9
Merge pull request #176 from alrs/fix-test-goroutines
Fix Swallowed goroutine Error Statements
2019-11-20 13:18:12 -08:00
AbserAri 6e135e5d7e DB.CreateBucket() -> Tx.CreateBucket() (#178)
there is not a method for DB called CreateBucket()
2019-10-01 09:49:32 -07:00
bbiao 72c1660c13 In golang v1.13, parse flags in package initialization will fail. See https://tip.golang.org/doc/go1.13#testing (#177)
Fixed by move the init func into a TestMain func.
2019-09-25 22:49:19 +08:00
Lars Lehtonen 0e02572955 simulation_test.go: fix swallowed goroutine error statements
simulation_test.go: add logging
2019-09-17 19:11:49 +00:00
Gyuho Lee 14ae4453e2
Merge pull request #157 from twpayne/add-go-mod
add go.mod
2019-09-08 20:39:40 -07:00
Ning Xie 35b6661093 enhance ut (#172) 2019-08-08 21:43:56 -07:00
Gyuho Lee 62396cbb20
Merge pull request #171 from muesli/conversion-fixes
Avoid unnecessary conversions
2019-08-06 11:18:37 -07:00
Christian Muehlhaeuser 0bf4edcf32 Avoid unnecessary conversions
No need to convert here, they are already of the right type.
2019-08-06 17:35:28 +00:00
Marin Atanasov Nikolov 0362320deb db.Path() resolves to db.file.Name() (#168) 2019-07-01 09:46:51 -07:00
Derek Collison 7c53bc0328 Added NATS and NATS Streaming (#164) 2019-06-28 01:08:48 +08:00
Xingyu Chen a0458a2b35 fix rollback panic bug (#153) 2019-06-08 09:57:04 -07:00
Jeff R. Allen 2eb7227ade Fix the build on Go 1.10 and before (#161)
Fixes #160.
2019-05-28 13:21:53 -07:00
Marco Peereboom 1727806877 Add support for riscv64 arch. (#159)
All tests pass.
2019-05-28 01:25:52 +02:00
Tom Payne 4af6cfab70 add OpenFile option (#158) 2019-05-10 14:16:40 -07:00
Tom Payne e65d4d5d27 add go.mod 2019-05-09 20:03:52 -07:00
Iskander (Alex) Sharipov 63597a96ec remove excessive []byte(s) conversion (#143)
`copy` permits using to mix `[]byte` and `string` arguments without
explicit conversion. I removed explicit conversion to make the code simpler.

Signed-off-by: Iskander Sharipov <quasilyte@gmail.com>
2019-01-28 10:11:30 -08:00
Xingyu Chen 8693da9f4d use segregated hashmap to boost the freelist allocate and release performance (#141) 2019-01-25 10:30:05 -08:00
Xingyu Chen 26245f2a4c fix test in releaserange (#142) 2019-01-23 18:34:41 -08:00
Xingyu Chen f0ad07c7d4 add getFreePageIDs (#140) 2019-01-20 23:42:17 -08:00
Xingyu Chen c5638469ec update the freelist readIDs (#139) 2019-01-20 21:45:53 -08:00
Ross Spencer 22d122a8b9 Add kval-access-language to README.md (#133) 2018-12-07 17:02:42 -08:00
John Howard 7ee3ded59d Fix Windows flock/funlock race (#122)
Signed-off-by: John Howard <jhoward@microsoft.com>
2018-09-12 13:56:54 -07:00
Gyuho Lee 8987c9740d
Merge pull request #123 from vcaesar/pj-pr
The list of project use bolt sorted by initials
2018-09-11 10:37:16 -07:00
vcaesar bd1da6196b The list of project use bolt sorted by initials 2018-09-11 13:30:28 -04:00
Michael 25c1c6d9cd Add reef-pi to project list (#119) 2018-09-09 15:15:06 -07:00
Gyuho Lee 27f3df8997 README: bbolt uses semantic versioning
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 11:43:12 -07:00
Gyuho Lee acbc2c426a travis.yml: skip "errcheck"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 10:18:45 -07:00
Gyuho Lee b951856120 cmd/bbolt: disable "bbolt" testing for now
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 08:48:31 -07:00
Gyuho Lee 8aa16a85c8 travis.yml: set Go import path
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 08:24:03 -07:00
Gyuho Lee b2a561c156 README: add "Importing bbolt"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 08:20:04 -07:00
Gyuho Lee 5912526255 travis.yml: run "errcheck" on CI
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 08:18:01 -07:00
Gyuho Lee 75d4714c2c *: rename "cmd/bbolt"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 08:17:28 -07:00
Gyuho Lee 77a57326e3 appveyor: remove
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 08:16:01 -07:00
Gyuho Lee 76a4670663 *: update import paths "go.etcd.io/bbolt"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 08:15:54 -07:00
Gyuho Lee 82839da515 README: use "travis-ci.com"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-27 20:02:45 -07:00