Move to supported boltdb#2634
Conversation
Codecov Report
@@ Coverage Diff @@
## master #2634 +/- ##
==========================================
+ Coverage 43.76% 43.77% +0.01%
==========================================
Files 94 94
Lines 10305 10307 +2
==========================================
+ Hits 4510 4512 +2
Misses 5075 5075
Partials 720 720
Continue to review full report at Codecov.
|
|
I am 👍 to updating this. Who can confirm that a file created with |
Hmmmm. Good question, but I don't know. Perhaps @gyuho @xiang90 over at https://github.com/etcd-io/bbolt might know the answer. |
@dmcgowan I'm not sure what you mean here. Can you give me a clue and I can follow-up. Thanks, |
|
@jhowardmsft add a version 3 here https://github.com/containerd/containerd/blob/master/metadata/migrations.go#L47 with a no-op migration and test case. This will allow us to tell if the file has been written to yet from the new library. |
|
@dmcgowan That's added now. |
|
What features do we envision gaining from this change? Boltdb is extremely stable. I’d hate to have a bug because someone messed with something in bbolt. I don’t see any reason to match deps with lib network. There should be no requirement for bolt in the client. containerd should only be compiled with the dependencies called out in the vendor file. |
|
@stevvooe Specifically etcd-io/bbolt#122 as I linked to in the PR description. |
|
We added a few new options, for example "no freelist persistence". However, if you do not change the db open options, there should not be a compatible problem if it is not a bug :P. |
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Howard <jhoward@microsoft.com> This is the maintained version of boltdb, which includes the Windows-specific fix detailed in etcd-io/bbolt#122
Signed-off-by: John Howard <jhoward@microsoft.com>
|
Thanks @xiang90. I've bumped this PR to use v1.3.1-etcd.8 rather than .7. This includes the Windows-specific fix for database lock and unlock to be thread-safe (etcd-io/bbolt#122) which has been merged. |
Signed-off-by: John Howard <jhoward@microsoft.com> This also adds go.etcd.io/bbolt as boltdb/bolt is no longer maintained, and we need etcd-io/bbolt#122 which was merged in https://github.com/etcd-io/bbolt/releases/tag/v1.3.1-etcd.8 in order to fix moby/libnetwork#1950. Note that I can't entirely remove boltdb/bolt as it is still used by other components. Still need to work my way through them.... These include containerd/containerd (containerd/containerd#2634), docker/swarmkit; moby/buildkit. And probably more....
|
@dmcgowan @crosbymichael Can we merge this? The dependency chain to resolve all the way through is getting complex - moby/buildkit for example vendors this repo, so I should really get this in first, before updating buildkit, before updating moby/moby and then finally resolving moby/moby#37843 (comment). We really should have all container related repos without the Windows thread safety bug in bolt. Thanks. |
|
LGTM |
|
Thanks guys, one step closer to getting everything switched over 👍 |
Signed-off-by: John Howard <jhoward@microsoft.com> This also adds go.etcd.io/bbolt as boltdb/bolt is no longer maintained, and we need etcd-io/bbolt#122 which was merged in https://github.com/etcd-io/bbolt/releases/tag/v1.3.1-etcd.8 in order to fix moby/libnetwork#1950. Note that I can't entirely remove boltdb/bolt as it is still used by other components. Still need to work my way through them.... These include containerd/containerd (containerd/containerd#2634), docker/swarmkit; moby/buildkit. And probably more.... (cherry picked from commit 1a6e260) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Signed-off-by: John Howard <jhoward@microsoft.com> This also adds go.etcd.io/bbolt as boltdb/bolt is no longer maintained, and we need etcd-io/bbolt#122 which was merged in https://github.com/etcd-io/bbolt/releases/tag/v1.3.1-etcd.8 in order to fix moby/libnetwork#1950. Note that I can't entirely remove boltdb/bolt as it is still used by other components. Still need to work my way through them.... These include containerd/containerd (containerd/containerd#2634), docker/swarmkit; moby/buildkit. And probably more.... Upstream-commit: 1a6e2609ead86144b75067bfe5154dad5e42d5cf Component: engine
Signed-off-by: John Howard <jhoward@microsoft.com> This also adds go.etcd.io/bbolt as boltdb/bolt is no longer maintained, and we need etcd-io/bbolt#122 which was merged in https://github.com/etcd-io/bbolt/releases/tag/v1.3.1-etcd.8 in order to fix moby/libnetwork#1950. Note that I can't entirely remove boltdb/bolt as it is still used by other components. Still need to work my way through them.... These include containerd/containerd (containerd/containerd#2634), docker/swarmkit; moby/buildkit. And probably more....
Signed-off-by: John Howard jhoward@microsoft.com
This all relates to this underlying issue: moby/libnetwork#1950. While I have etcd-io/bbolt#122 pending being merged, it makes sense to move all projects which are dependencies of moby/moby from boltdb/bolt to go.etcd.io/bbolt so that there is a single database in use by all components.
These include containerd/containerd (this PR); docker/swarmkit; moby/buildkit; moby/moby; containerd/cri; docker/libkv (docker/libkv#202) and docker/libnetwork. (At least this is all I have found so far).
github.com/boltdb/bolt is no longer being maintained. From https://github.com/boltdb/bolt: