{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":449820581,"defaultBranch":"master","name":"moby","ownerLogin":"corhere","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2022-01-19T19:04:49.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/274527?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1714159113.0","currentOid":""},"activityList":{"items":[{"before":"7257c77e1998829705aae4cc0d85084b23df0251","after":null,"ref":"refs/heads/libn/netip-overlaps","pushedAt":"2024-04-26T19:18:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"}},{"before":"7ebd88d2d9d499f606e56a567be8fe6a18f25258","after":null,"ref":"refs/heads/cnmallocator/lift-n-shift","pushedAt":"2024-03-21T19:30:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"}},{"before":"f4657eae7d181b775df737d351dd1cf5b7fa26e8","after":null,"ref":"refs/heads/backport-23.0/libnet-resolver-nxdomain","pushedAt":"2024-03-19T18:41:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"}},{"before":"2b44152867b38b756d4d3d31baddd04c6f0c11ba","after":"f4657eae7d181b775df737d351dd1cf5b7fa26e8","ref":"refs/heads/backport-23.0/libnet-resolver-nxdomain","pushedAt":"2024-03-19T16:50:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libnet: Don't forward to upstream resolvers on internal nw\n\nThis commit makes sure the embedded resolver doesn't try to forward to\nupstream servers when a container is only attached to an internal\nnetwork.\n\nCo-authored-by: Albin Kerouanton \nSigned-off-by: Rob Murray \n(cherry picked from commit 790c3039d0ca5ed86ecd099b4b571496607628bc)\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libnet: Don't forward to upstream resolvers on internal nw"}},{"before":"ecff35bed99721f82675677c965b6c5f47be0f26","after":"2b44152867b38b756d4d3d31baddd04c6f0c11ba","ref":"refs/heads/backport-23.0/libnet-resolver-nxdomain","pushedAt":"2024-03-19T16:06:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libnet: Don't forward to upstream resolvers on internal nw\n\nThis commit makes sure the embedded resolver doesn't try to forward to\nupstream servers when a container is only attached to an internal\nnetwork.\n\nCo-authored-by: Albin Kerouanton \nSigned-off-by: Rob Murray \n(cherry picked from commit 790c3039d0ca5ed86ecd099b4b571496607628bc)\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libnet: Don't forward to upstream resolvers on internal nw"}},{"before":"90f401a7a3a901cca98298e5e801d1d0fc16e1ca","after":"ecff35bed99721f82675677c965b6c5f47be0f26","ref":"refs/heads/backport-23.0/libnet-resolver-nxdomain","pushedAt":"2024-03-19T16:06:03.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libnet: Don't forward to upstream resolvers on internal nw\n\nThis commit makes sure the embedded resolver doesn't try to forward to\nupstream servers when a container is only attached to an internal\nnetwork.\n\nCo-authored-by: Albin Kerouanton \nSigned-off-by: Rob Murray \n(cherry picked from commit 790c3039d0ca5ed86ecd099b4b571496607628bc)\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libnet: Don't forward to upstream resolvers on internal nw"}},{"before":null,"after":"90f401a7a3a901cca98298e5e801d1d0fc16e1ca","ref":"refs/heads/backport-23.0/libnet-resolver-nxdomain","pushedAt":"2024-03-19T16:02:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libnet: Don't forward to upstream resolvers on internal nw\n\nThis commit makes sure the embedded resolver doesn't try to forward to\nupstream servers when a container is only attached to an internal\nnetwork.\n\nCo-authored-by: Albin Kerouanton \nSigned-off-by: Rob Murray \n(cherry picked from commit 790c3039d0ca5ed86ecd099b4b571496607628bc)\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libnet: Don't forward to upstream resolvers on internal nw"}},{"before":"7b0ab1011cab6b8b4a8099da033e62dec7beaba5","after":"7ebd88d2d9d499f606e56a567be8fe6a18f25258","ref":"refs/heads/cnmallocator/lift-n-shift","pushedAt":"2024-02-29T21:20:30.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"hack: block imports of vendored testify packages\n\nWhile github.com/stretchr/testify is not used directly by any of the\nrepository code, it is a transitive dependency via Swarmkit and\ntherefore still easy to use without having to revendor. Add lint rules\nto ban importing testify packages to make sure nobody does.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"hack: block imports of vendored testify packages"}},{"before":"80376ccd7ae3e56696b259f342470ee1cb57c47e","after":"7b0ab1011cab6b8b4a8099da033e62dec7beaba5","ref":"refs/heads/cnmallocator/lift-n-shift","pushedAt":"2024-02-28T14:46:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"Vendor dependency cycle-free swarmkit\n\nMoby imports Swarmkit; Swarmkit no longer imports Moby. In order to\naccomplish this feat, Swarmkit has introduced a new plugin.Getter\ninterface so it could stop importing our pkg/plugingetter package. This\nnew interface is not entirely compatible with our\nplugingetter.PluginGetter interface, necessitating a thin adapter.\n\nSwarmkit had to jettison the CNM network allocator to stop having to\nimport libnetwork as the cnmallocator package is deeply tied to\nlibnetwork. Move the CNM network allocator into libnetwork, where it\nbelongs. The package had a short an uninteresting Git history in the\nSwarmkit repository so no effort was made to retain history.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"Vendor dependency cycle-free swarmkit"}},{"before":"71106208f9adaf851c8a0b3bbc00b505abe03ecd","after":"80376ccd7ae3e56696b259f342470ee1cb57c47e","ref":"refs/heads/cnmallocator/lift-n-shift","pushedAt":"2024-02-27T18:17:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"Vendor dependency cycle-free swarmkit\n\nMoby imports Swarmkit; Swarmkit no longer imports Moby. In order to\naccomplish this feat, Swarmkit has introduced a new plugin.Getter\ninterface so it could stop importing our pkg/plugingetter package. This\nnew interface is not entirely compatible with our\nplugingetter.PluginGetter interface, necessitating a thin adapter.\n\nSwarmkit had to jettison the CNM network allocator to stop having to\nimport libnetwork as the cnmallocator package is deeply tied to\nlibnetwork. Move the CNM network allocator into libnetwork, where it\nbelongs. The package had a short an uninteresting Git history in the\nSwarmkit repository so no effort was made to retain history.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"Vendor dependency cycle-free swarmkit"}},{"before":"b9c4449489e433b9f8458821a03302b9504e3e05","after":"71106208f9adaf851c8a0b3bbc00b505abe03ecd","ref":"refs/heads/cnmallocator/lift-n-shift","pushedAt":"2024-02-27T17:55:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"Vendor dependency cycle-free swarmkit\n\nMoby imports Swarmkit; Swarmkit no longer imports Moby. In order to\naccomplish this feat, Swarmkit has introduced a new plugin.Getter\ninterface so it could stop importing our pkg/plugingetter package. This\nnew interface is not entirely compatible with our\nplugingetter.PluginGetter interface, necessitating a thin adapter.\n\nSwarmkit had to jettison the CNM network allocator to stop having to\nimport libnetwork as the cnmallocator package is deeply tied to\nlibnetwork. Move the CNM network allocator into libnetwork, where it\nbelongs. The package had a short an uninteresting Git history in the\nSwarmkit repository so no effort was made to retain history.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"Vendor dependency cycle-free swarmkit"}},{"before":"39f72ec910946fcc2069c86b3bdac5590619a77a","after":"b9c4449489e433b9f8458821a03302b9504e3e05","ref":"refs/heads/cnmallocator/lift-n-shift","pushedAt":"2024-02-27T17:52:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"Vendor dependency cycle-free swarmkit\n\nMoby imports Swarmkit; Swarmkit no longer imports Moby. In order to\naccomplish this feat, Swarmkit has introduced a new plugin.Getter\ninterface so it could stop importing our pkg/plugingetter package. This\nnew interface is not entirely compatible with our\nplugingetter.PluginGetter interface, necessitating a thin adapter.\n\nSwarmkit had to jettison the CNM network allocator to stop having to\nimport libnetwork as the cnmallocator package is deeply tied to\nlibnetwork. Move the CNM network allocator into libnetwork, where it\nbelongs. The package had a short an uninteresting Git history in the\nSwarmkit repository so no effort was made to retain history.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"Vendor dependency cycle-free swarmkit"}},{"before":"6fe7928c8c9b29bcd2d0232c356e76134656901f","after":"39f72ec910946fcc2069c86b3bdac5590619a77a","ref":"refs/heads/cnmallocator/lift-n-shift","pushedAt":"2024-02-27T17:51:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"Vendor dependency cycle-free swarmkit\n\nMoby imports Swarmkit; Swarmkit no longer imports Moby. In order to\naccomplish this feat, Swarmkit has introduced a new plugin.Getter\ninterface so it could stop importing our pkg/plugingetter package. This\nnew interface is not entirely compatible with our\nplugingetter.PluginGetter interface, necessitating a thin adapter.\n\nSwarmkit had to jettison the CNM network allocator to stop having to\nimport libnetwork as the cnmallocator package is deeply tied to\nlibnetwork. Move the CNM network allocator into libnetwork, where it\nbelongs. The package had a short an uninteresting Git history in the\nSwarmkit repository so no effort was made to retain history.","shortMessageHtmlLink":"Vendor dependency cycle-free swarmkit"}},{"before":null,"after":"6fe7928c8c9b29bcd2d0232c356e76134656901f","ref":"refs/heads/cnmallocator/lift-n-shift","pushedAt":"2024-02-23T23:29:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"WIP vendor dependency cycle-free swarmkit\n\nMoby imports Swarmkit; Swarmkit no longer imports Moby. In order to\naccomplish this feat, Swarmkit has introduced a new plugin.Getter\ninterface so it could stop importing our pkg/plugingetter package. This\nnew interface is not entirely compatible with our\nplugingetter.PluginGetter interface, necessitating a thin adapter.\n\nSwarmkit had to jettison the CNM network allocator to stop having to\nimport libnetwork as the cnmallocator package is deeply tied to\nlibnetwork. Move the CNM network allocator into libnetwork, where it\nbelongs. The package had a short an uninteresting Git history in the\nSwarmkit repository so no effort was made to retain history.","shortMessageHtmlLink":"WIP vendor dependency cycle-free swarmkit"}},{"before":"5bcd2f6860fb4247c844e6e9338a4fef7e07f9f7","after":null,"ref":"refs/heads/best-effort-xattrs-classic-builder","pushedAt":"2024-02-22T20:03:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"}},{"before":"2200c0137f13187a1917af1291bb5be2d8fe3b07","after":null,"ref":"refs/heads/libn/one-datastore-to-rule-them-all","pushedAt":"2024-02-21T17:35:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"}},{"before":"ab6d760d29c0730450db834744bdb470b7cb29da","after":"5bcd2f6860fb4247c844e6e9338a4fef7e07f9f7","ref":"refs/heads/best-effort-xattrs-classic-builder","pushedAt":"2024-02-12T18:40:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"builder/dockerfile: ADD with best-effort xattrs\n\nArchives being unpacked by Dockerfiles may have been created on other\nOSes with different conventions and semantics for xattrs, making them\nimpossible to apply when extracting. Restore the old best-effort xattr\nbehaviour users have come to depend on in the classic builder.\n\nThe (archive.Archiver).UntarPath function does not allow the options\npassed to Untar to be customized. It also happens to be a trivial\nwrapper around the Untar function. Inline the function body and add the\noption.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"builder/dockerfile: ADD with best-effort xattrs"}},{"before":null,"after":"b0011c0436fa3d994479149b4c3c14497c520813","ref":"refs/heads/best-effort-xattrs-option","pushedAt":"2024-02-12T17:57:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"pkg/archive: add functional option for xattrs\n\nAdd functional options to the Archiver methods to afford customizing the\noptions used for untar. Define a functional option for setting\nBestEffortXattrs.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"pkg/archive: add functional option for xattrs"}},{"before":"9150d0115e940dc53a610d36266d92650587ce02","after":null,"ref":"refs/heads/backport-25.0/fix-journald-logs-systemd-255","pushedAt":"2024-02-08T18:43:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"}},{"before":"f2d0d87c462f0a8be8d7344e729d091f341ce08c","after":"9150d0115e940dc53a610d36266d92650587ce02","ref":"refs/heads/backport-25.0/fix-journald-logs-systemd-255","pushedAt":"2024-02-03T00:11:19.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"d/logger/journald: quit waiting when logger closes\n\nIf a reader has caught up to the logger and is waiting for the next\nmessage, it should stop waiting when the logger is closed. Otherwise\nthe reader will unnecessarily wait the full closedDrainTimeout for no\nlog messages to arrive.\n\nThis case was overlooked when the journald reader was recently\noverhauled to be compatible with systemd 255, and the reader tests only\nfailed when a logical race happened to settle in such a way to exercise\nthe bugged code path. It was only after implicit flushing on close was\nadded to the journald test harness that the Follow tests would\nrepeatably fail due to this bug. (No new regression tests are needed.)\n\nSigned-off-by: Cory Snider \n(cherry picked from commit 987fe37ed1f0f7cbc1cac23e66a35bb293303d49)\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"d/logger/journald: quit waiting when logger closes"}},{"before":"987fe37ed1f0f7cbc1cac23e66a35bb293303d49","after":null,"ref":"refs/heads/journald/quit-when-youre-ahead","pushedAt":"2024-02-03T00:10:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"}},{"before":"19940537277dc7668a799b5bb7a454d5697176d1","after":"0f6939eaf5ac3f12677dbb066920a0985f4e8969","ref":"refs/heads/libc8d/return-waitch","pushedAt":"2024-02-01T21:38:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libc8d/supervisor: return waitCh from startContainerd\n\nThe daemonWaitCh initialized by a call to startContainerd() will be\nclosed when that particular containerd process exits. Storing the\nchannel in a struct field obscures its association with a particular\nstartContainerd() call and makes race conditions less obvious. Refactor\nthe supervisor code so the daemonWaitCh and process pid are returned\nfrom startContainerd() and stored in local variables of monitorDaemon().\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libc8d/supervisor: return waitCh from startContainerd"}},{"before":null,"after":"19940537277dc7668a799b5bb7a454d5697176d1","ref":"refs/heads/libc8d/return-waitch","pushedAt":"2024-02-01T21:36:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libc8d/supervisor: return waitCh from startContainerd\n\nThe daemonWaitCh initialized by a call to startContainerd() will be\nclosed when that particular containerd process exits. Storing the\nchannel in a struct field obscures its association with a particular\nstartContainerd() call and makes race conditions less obvious. Refactor\nthe supervisor code so the daemonWaitCh and process pid are returned\nfrom startContainerd() and stored in local variables of monitorDaemon().\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libc8d/supervisor: return waitCh from startContainerd"}},{"before":null,"after":"dd20bf4862319485a9a9c66ac8907993a3142e3c","ref":"refs/heads/libc8d/fix-startup-data-race","pushedAt":"2024-02-01T20:55:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libcontainerd/supervisor: fix data race\n\nThe monitorDaemon() goroutine calls startContainerd() then blocks on\n<-daemonWaitCh to wait for it to exit. The startContainerd() function\nwould (re)initialize the daemonWaitCh so a restarted containerd could be\nwaited on. This implementation was race-free because startContainerd()\nwould synchronously initialize the daemonWaitCh before returning. When\nthe call to start the managed containerd process was moved into the\nwaiter goroutine, the code to initialize the daemonWaitCh struct field\nwas also moved into the goroutine. This introduced a race condition.\n\nMove the daemonWaitCh initialization to guarantee that it happens before\nthe startContainerd() call returns.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libcontainerd/supervisor: fix data race"}},{"before":"952de8b464df64d204a1150f5763eb67af83c2ec","after":"2200c0137f13187a1917af1291bb5be2d8fe3b07","ref":"refs/heads/libn/one-datastore-to-rule-them-all","pushedAt":"2024-02-01T02:26:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libnetwork/datastore: don't parse file path\n\nFile paths can contain commas, particularly paths returned from\nt.TempDir() in subtests which include commas in their names. There is\nonly one datastore provider and it only supports a single address, so\nthe only use of parsing the address is to break tests in mysterious\nways.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libnetwork/datastore: don't parse file path"}},{"before":"d21d0884aebf991b418481efab619f6dce95d945","after":"952de8b464df64d204a1150f5763eb67af83c2ec","ref":"refs/heads/libn/one-datastore-to-rule-them-all","pushedAt":"2024-02-01T02:23:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libnetwork/datastore: don't parse file path\n\nFile paths can contain commas, particularly paths returned from\nt.TempDir() in subtests which include commas in their names. There is\nonly one datastore provider and it only supports a single address, so\nthe only use of parsing the address is to break tests in mysterious\nways.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libnetwork/datastore: don't parse file path"}},{"before":"dcf74ab3c4859e8a33d1a00db692bc5e4aa81c88","after":"d21d0884aebf991b418481efab619f6dce95d945","ref":"refs/heads/libn/one-datastore-to-rule-them-all","pushedAt":"2024-02-01T02:08:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libnetwork: share a single datastore with drivers\n\nThe bbolt library wants exclusive access to the boltdb file and uses\nfile locking to assure that is the case. The controller and each network\ndriver that needs persistent storage instantiates its own unique\ndatastore instance, backed by the same boltdb file. The boltdb kvstore\nimplementation works around multiple access to the same boltdb file by\naggressively closing the boltdb file between each transaction. This is\nvery inefficient. Have the controller pass its datastore instance into\nthe drivers and enable the PersistConnection option to disable closing\nthe boltdb between transactions.\n\nSet data-dir in unit tests which instantiate libnetwork controllers so\nthey don't hang trying to lock the default boltdb database file.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libnetwork: share a single datastore with drivers"}},{"before":"237fa5eccd8072f399a6a35a300ba3a761820a50","after":"dcf74ab3c4859e8a33d1a00db692bc5e4aa81c88","ref":"refs/heads/libn/one-datastore-to-rule-them-all","pushedAt":"2024-02-01T02:06:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libnetwork: share a single datastore with drivers\n\nThe bbolt library wants exclusive access to the boltdb file and uses\nfile locking to assure that is the case. The controller and each network\ndriver that needs persistent storage instantiates its own unique\ndatastore instance, backed by the same boltdb file. The boltdb kvstore\nimplementation works around multiple access to the same boltdb file by\naggressively closing the boltdb file between each transaction. This is\nvery inefficient. Have the controller pass its datastore instance into\nthe drivers and enable the PersistConnection option to disable closing\nthe boltdb between transactions.\n\nSet data-dir in unit tests which instantiate libnetwork controllers so\nthey don't hang trying to lock the default boltdb database file.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libnetwork: share a single datastore with drivers"}},{"before":"d9190eec8ba74fe6095c53ef0502b32cc1bc2230","after":"237fa5eccd8072f399a6a35a300ba3a761820a50","ref":"refs/heads/libn/one-datastore-to-rule-them-all","pushedAt":"2024-02-01T01:44:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libnetwork: share a single datastore with drivers\n\nThe bbolt library wants exclusive access to the boltdb file and uses\nfile locking to assure that is the case. The controller and each network\ndriver that needs persistent storage instantiates its own unique\ndatastore instance, backed by the same boltdb file. The boltdb kvstore\nimplementation works around multiple access to the same boltdb file by\naggressively closing the boltdb file between each transaction. This is\nvery inefficient. Have the controller pass its datastore instance into\nthe drivers and enable the PersistConnection option to disable closing\nthe boltdb between transactions.\n\nSet data-dir in unit tests which instantiate libnetwork controllers so\nthey don't hang trying to lock the default boltdb database file.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libnetwork: share a single datastore with drivers"}},{"before":"30eb2854851e6e39ebdbea0c8a876d4e6235ec82","after":"d9190eec8ba74fe6095c53ef0502b32cc1bc2230","ref":"refs/heads/libn/one-datastore-to-rule-them-all","pushedAt":"2024-01-31T23:06:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"corhere","name":"Cory Snider","path":"/corhere","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/274527?s=80&v=4"},"commit":{"message":"libnetwork: share a single datastore with drivers\n\nThe bbolt library wants exclusive access to the boltdb file and uses\nfile locking to assure that is the case. The controller and each network\ndriver that needs persistent storage instantiates its own unique\ndatastore instance, backed by the same boltdb file. The boltdb kvstore\nimplementation works around multiple access to the same boltdb file by\naggressively closing the boltdb file between each transaction. This is\nvery inefficient. Have the controller pass its datastore instance into\nthe drivers and enable the PersistConnection option to disable closing\nthe boltdb between transactions.\n\nSigned-off-by: Cory Snider ","shortMessageHtmlLink":"libnetwork: share a single datastore with drivers"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEO3ZZ3gA","startCursor":null,"endCursor":null}},"title":"Activity ยท corhere/moby"}