mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 02:08:13 +00:00 
			
		
		
		
	Update boltdb dependency to fix golang 1.7 intermittent failures
We have a old boltdb/bolt, etcd has moved to newer boltdb, so we should
do the same. Specifically this change needs to be in our tree:
92410e0673
as this fixes intermittent issues we see in our CI runs. So in this
PR, we vendor the v1.3.0 version of boltdb/bolt.
Fixes #43973
			
			
This commit is contained in:
		
							
								
								
									
										4
									
								
								Godeps/Godeps.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								Godeps/Godeps.json
									
									
									
										generated
									
									
									
								
							| @@ -313,8 +313,8 @@ | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/boltdb/bolt", | ||||
| 			"Comment": "v1.2.1", | ||||
| 			"Rev": "dfb21201d9270c1082d5fb0f07f500311ff72f18" | ||||
| 			"Comment": "v1.3.0", | ||||
| 			"Rev": "583e8937c61f1af6513608ccc75c97b6abdf4ff9" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/chai2010/gettext-go/gettext", | ||||
|   | ||||
							
								
								
									
										2
									
								
								staging/src/k8s.io/apiserver/Godeps/Godeps.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								staging/src/k8s.io/apiserver/Godeps/Godeps.json
									
									
									
										generated
									
									
									
								
							| @@ -24,7 +24,7 @@ | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/boltdb/bolt", | ||||
| 			"Rev": "dfb21201d9270c1082d5fb0f07f500311ff72f18" | ||||
| 			"Rev": "583e8937c61f1af6513608ccc75c97b6abdf4ff9" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"ImportPath": "github.com/coreos/etcd/alarm", | ||||
|   | ||||
							
								
								
									
										12
									
								
								vendor/github.com/boltdb/bolt/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/boltdb/bolt/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| Bolt [](https://coveralls.io/r/boltdb/bolt?branch=master) [](https://godoc.org/github.com/boltdb/bolt)  | ||||
| Bolt [](https://coveralls.io/r/boltdb/bolt?branch=master) [](https://godoc.org/github.com/boltdb/bolt)  | ||||
| ==== | ||||
|  | ||||
| Bolt is a pure Go key/value store inspired by [Howard Chu's][hyc_symas] | ||||
| @@ -313,7 +313,7 @@ func (s *Store) CreateUser(u *User) error { | ||||
|         // Generate ID for the user. | ||||
|         // This returns an error only if the Tx is closed or not writeable. | ||||
|         // That can't happen in an Update() call so I ignore the error check. | ||||
|         id, _ = b.NextSequence() | ||||
|         id, _ := b.NextSequence() | ||||
|         u.ID = int(id) | ||||
|  | ||||
|         // Marshal user data into bytes. | ||||
| @@ -557,7 +557,7 @@ if err != nil { | ||||
| Bolt is able to run on mobile devices by leveraging the binding feature of the | ||||
| [gomobile](https://github.com/golang/mobile) tool. Create a struct that will | ||||
| contain your database logic and a reference to a `*bolt.DB` with a initializing | ||||
| contstructor that takes in a filepath where the database file will be stored. | ||||
| constructor that takes in a filepath where the database file will be stored. | ||||
| Neither Android nor iOS require extra permissions or cleanup from using this method. | ||||
|  | ||||
| ```go | ||||
| @@ -807,6 +807,7 @@ them via pull request. | ||||
|  | ||||
| Below is a list of public, open source projects that use Bolt: | ||||
|  | ||||
| * [BoltDbWeb](https://github.com/evnix/boltdbweb) - A web based GUI for BoltDB files. | ||||
| * [Operation Go: A Routine Mission](http://gocode.io) - An online programming game for Golang using Bolt for user accounts and a leaderboard. | ||||
| * [Bazil](https://bazil.org/) - A file system that lets your data reside where it is most convenient for it to reside. | ||||
| * [DVID](https://github.com/janelia-flyem/dvid) - Added Bolt as optional storage engine and testing it against Basho-tuned leveldb. | ||||
| @@ -825,7 +826,6 @@ Below is a list of public, open source projects that use Bolt: | ||||
| * [cayley](https://github.com/google/cayley) - Cayley is an open-source graph database using Bolt as optional backend. | ||||
| * [bleve](http://www.blevesearch.com/) - A pure Go search engine similar to ElasticSearch that uses Bolt as the default storage backend. | ||||
| * [tentacool](https://github.com/optiflows/tentacool) - REST api server to manage system stuff (IP, DNS, Gateway...) on a linux server. | ||||
| * [SkyDB](https://github.com/skydb/sky) - Behavioral analytics database. | ||||
| * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Highly scalable distributed key~file system with O(1) disk read. | ||||
| * [InfluxDB](https://influxdata.com) - Scalable datastore for metrics, events, and real-time analytics. | ||||
| * [Freehold](http://tshannon.bitbucket.org/freehold/) - An open, secure, and lightweight platform for your files and data. | ||||
| @@ -842,9 +842,11 @@ Below is a list of public, open source projects that use Bolt: | ||||
| * [Go Report Card](https://goreportcard.com/) - Go code quality report cards as a (free and open source) service. | ||||
| * [Boltdb Boilerplate](https://github.com/bobintornado/boltdb-boilerplate) - Boilerplate wrapper around bolt aiming to make simple calls one-liners. | ||||
| * [lru](https://github.com/crowdriff/lru) - Easy to use Bolt-backed Least-Recently-Used (LRU) read-through cache with chainable remote stores. | ||||
| * [Storm](https://github.com/asdine/storm) - A simple ORM around BoltDB. | ||||
| * [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB. | ||||
| * [GoWebApp](https://github.com/josephspurrier/gowebapp) - A basic MVC web application in Go using BoltDB. | ||||
| * [SimpleBolt](https://github.com/xyproto/simplebolt) - A simple way to use BoltDB. Deals mainly with strings. | ||||
| * [Algernon](https://github.com/xyproto/algernon) - A HTTP/2 web server with built-in support for Lua. Uses BoltDB as the default database backend. | ||||
| * [MuLiFS](https://github.com/dankomiocevic/mulifs) - Music Library Filesystem creates a filesystem to organise your music files. | ||||
| * [GoShort](https://github.com/pankajkhairnar/goShort) - GoShort is a URL shortener written in Golang and BoltDB for persistent key/value storage and for routing it's using high performent HTTPRouter. | ||||
|  | ||||
| If you are using Bolt in a project please send a pull request to add it to the list. | ||||
|   | ||||
							
								
								
									
										18
									
								
								vendor/github.com/boltdb/bolt/freelist.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/boltdb/bolt/freelist.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -166,12 +166,16 @@ func (f *freelist) read(p *page) { | ||||
| 	} | ||||
|  | ||||
| 	// Copy the list of page ids from the freelist. | ||||
| 	ids := ((*[maxAllocSize]pgid)(unsafe.Pointer(&p.ptr)))[idx:count] | ||||
| 	f.ids = make([]pgid, len(ids)) | ||||
| 	copy(f.ids, ids) | ||||
| 	if count == 0 { | ||||
| 		f.ids = nil | ||||
| 	} else { | ||||
| 		ids := ((*[maxAllocSize]pgid)(unsafe.Pointer(&p.ptr)))[idx:count] | ||||
| 		f.ids = make([]pgid, len(ids)) | ||||
| 		copy(f.ids, ids) | ||||
|  | ||||
| 	// Make sure they're sorted. | ||||
| 	sort.Sort(pgids(f.ids)) | ||||
| 		// Make sure they're sorted. | ||||
| 		sort.Sort(pgids(f.ids)) | ||||
| 	} | ||||
|  | ||||
| 	// Rebuild the page cache. | ||||
| 	f.reindex() | ||||
| @@ -189,7 +193,9 @@ func (f *freelist) write(p *page) error { | ||||
|  | ||||
| 	// The page.count can only hold up to 64k elements so if we overflow that | ||||
| 	// number then we handle it by putting the size in the first element. | ||||
| 	if len(ids) < 0xFFFF { | ||||
| 	if len(ids) == 0 { | ||||
| 		p.count = uint16(len(ids)) | ||||
| 	} else if len(ids) < 0xFFFF { | ||||
| 		p.count = uint16(len(ids)) | ||||
| 		copy(((*[maxAllocSize]pgid)(unsafe.Pointer(&p.ptr)))[:], ids) | ||||
| 	} else { | ||||
|   | ||||
							
								
								
									
										5
									
								
								vendor/github.com/boltdb/bolt/node.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/boltdb/bolt/node.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -201,6 +201,11 @@ func (n *node) write(p *page) { | ||||
| 	} | ||||
| 	p.count = uint16(len(n.inodes)) | ||||
|  | ||||
| 	// Stop here if there are no items to write. | ||||
| 	if p.count == 0 { | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	// Loop over each item and write it to the page. | ||||
| 	b := (*[maxAllocSize]byte)(unsafe.Pointer(&p.ptr))[n.pageElementSize()*len(n.inodes):] | ||||
| 	for i, item := range n.inodes { | ||||
|   | ||||
							
								
								
									
										6
									
								
								vendor/github.com/boltdb/bolt/page.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/boltdb/bolt/page.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -62,6 +62,9 @@ func (p *page) leafPageElement(index uint16) *leafPageElement { | ||||
|  | ||||
| // leafPageElements retrieves a list of leaf nodes. | ||||
| func (p *page) leafPageElements() []leafPageElement { | ||||
| 	if p.count == 0 { | ||||
| 		return nil | ||||
| 	} | ||||
| 	return ((*[0x7FFFFFF]leafPageElement)(unsafe.Pointer(&p.ptr)))[:] | ||||
| } | ||||
|  | ||||
| @@ -72,6 +75,9 @@ func (p *page) branchPageElement(index uint16) *branchPageElement { | ||||
|  | ||||
| // branchPageElements retrieves a list of branch nodes. | ||||
| func (p *page) branchPageElements() []branchPageElement { | ||||
| 	if p.count == 0 { | ||||
| 		return nil | ||||
| 	} | ||||
| 	return ((*[0x7FFFFFF]branchPageElement)(unsafe.Pointer(&p.ptr)))[:] | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Davanum Srinivas
					Davanum Srinivas