Skip to content

Commit 2334ee9

Browse files
committed
Merge pull request #1963 from karalabe/fix-database-regression
eth: fix error casting regression during database open
2 parents 76390ef + 5d89bbd commit 2334ee9

File tree

1 file changed

+3
-18
lines changed

1 file changed

+3
-18
lines changed

eth/backend.go

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ const (
6565
var (
6666
jsonlogger = logger.NewJsonLogger()
6767

68-
datadirInUseErrNos = []uint{11, 32, 35}
68+
datadirInUseErrnos = map[uint]bool{11: true, 32: true, 35: true}
6969
portInUseErrRE = regexp.MustCompile("address already in use")
7070

7171
defaultBootNodes = []*discover.Node{
@@ -286,15 +286,7 @@ func New(config *Config) (*Ethereum, error) {
286286
// Open the chain database and perform any upgrades needed
287287
chainDb, err := newdb(filepath.Join(config.DataDir, "chaindata"))
288288
if err != nil {
289-
var ok bool
290-
errno := uint(err.(syscall.Errno))
291-
for _, no := range datadirInUseErrNos {
292-
if errno == no {
293-
ok = true
294-
break
295-
}
296-
}
297-
if ok {
289+
if errno, ok := err.(syscall.Errno); ok && datadirInUseErrnos[uint(errno)] {
298290
err = fmt.Errorf("%v (check if another instance of geth is already running with the same data directory '%s')", err, config.DataDir)
299291
}
300292
return nil, fmt.Errorf("blockchain db err: %v", err)
@@ -311,14 +303,7 @@ func New(config *Config) (*Ethereum, error) {
311303

312304
dappDb, err := newdb(filepath.Join(config.DataDir, "dapp"))
313305
if err != nil {
314-
var ok bool
315-
for _, no := range datadirInUseErrNos {
316-
if uint(err.(syscall.Errno)) == no {
317-
ok = true
318-
break
319-
}
320-
}
321-
if ok {
306+
if errno, ok := err.(syscall.Errno); ok && datadirInUseErrnos[uint(errno)] {
322307
err = fmt.Errorf("%v (check if another instance of geth is already running with the same data directory '%s')", err, config.DataDir)
323308
}
324309
return nil, fmt.Errorf("dapp db err: %v", err)

0 commit comments

Comments
 (0)