Merge pull request #432 from status-im/fix-#414

Fix #414
This commit is contained in:
kdeme 2019-12-05 13:22:07 -08:00 committed by GitHub
commit 1e54e2537b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 31 additions and 32 deletions

View File

@ -209,7 +209,7 @@ proc processInteger*(v: string, o: var int): ConfigStatus =
try: try:
o = parseInt(v) o = parseInt(v)
result = Success result = Success
except: except ValueError:
result = ErrorParseOption result = ErrorParseOption
proc processFloat*(v: string, o: var float): ConfigStatus = proc processFloat*(v: string, o: var float): ConfigStatus =
@ -217,7 +217,7 @@ proc processFloat*(v: string, o: var float): ConfigStatus =
try: try:
o = parseFloat(v) o = parseFloat(v)
result = Success result = Success
except: except ValueError:
result = ErrorParseOption result = ErrorParseOption
proc processAddressPortsList(v: string, proc processAddressPortsList(v: string,
@ -230,11 +230,11 @@ proc processAddressPortsList(v: string,
var tas6: seq[TransportAddress] var tas6: seq[TransportAddress]
try: try:
tas4 = resolveTAddress(item, IpAddressFamily.IPv4) tas4 = resolveTAddress(item, IpAddressFamily.IPv4)
except: except CatchableError:
discard discard
try: try:
tas6 = resolveTAddress(item, IpAddressFamily.IPv6) tas6 = resolveTAddress(item, IpAddressFamily.IPv6)
except: except CatchableError:
discard discard
if len(tas4) == 0 and len(tas6) == 0: if len(tas4) == 0 and len(tas6) == 0:
result = ErrorParseOption result = ErrorParseOption
@ -296,7 +296,7 @@ proc processPrivateKey(v: string, o: var PrivateKey): ConfigStatus =
try: try:
o = initPrivateKey(v) o = initPrivateKey(v)
result = Success result = Success
except: except CatchableError:
result = ErrorParseOption result = ErrorParseOption
# proc processHexBytes(v: string, o: var seq[byte]): ConfigStatus = # proc processHexBytes(v: string, o: var seq[byte]): ConfigStatus =
@ -304,7 +304,7 @@ proc processPrivateKey(v: string, o: var PrivateKey): ConfigStatus =
# try: # try:
# o = fromHex(v) # o = fromHex(v)
# result = Success # result = Success
# except: # except CatchableError:
# result = ErrorParseOption # result = ErrorParseOption
# proc processHexString(v: string, o: var string): ConfigStatus = # proc processHexString(v: string, o: var string): ConfigStatus =
@ -312,7 +312,7 @@ proc processPrivateKey(v: string, o: var PrivateKey): ConfigStatus =
# try: # try:
# o = parseHexStr(v) # o = parseHexStr(v)
# result = Success # result = Success
# except: # except CatchableError:
# result = ErrorParseOption # result = ErrorParseOption
# proc processJson(v: string, o: var JsonNode): ConfigStatus = # proc processJson(v: string, o: var JsonNode): ConfigStatus =
@ -320,7 +320,7 @@ proc processPrivateKey(v: string, o: var PrivateKey): ConfigStatus =
# try: # try:
# o = parseJson(v) # o = parseJson(v)
# result = Success # result = Success
# except: # except CatchableError:
# result = ErrorParseOption # result = ErrorParseOption
proc processPruneList(v: string, flags: var PruneMode): ConfigStatus = proc processPruneList(v: string, flags: var PruneMode): ConfigStatus =

View File

@ -183,10 +183,8 @@ proc process*() =
while nimbus.state == Running: while nimbus.state == Running:
try: try:
poll() poll()
except CatchableError: except CatchableError as e:
debug "Exception in poll()", debug "Exception in poll()", exc = e.name, err = e.msg
exc = getCurrentException().name,
err = getCurrentExceptionMsg()
# Stop loop # Stop loop
waitFor stop() waitFor stop()

View File

@ -59,7 +59,7 @@ proc setupWhisperRPC*(node: EthereumNode, keys: WhisperKeys, rpcsrv: RpcServer)
# this is the general behaviour we want. # this is the general behaviour we want.
try: try:
waitFor node.setPowRequirement(pow) waitFor node.setPowRequirement(pow)
except: except CatchableError:
trace "setPowRequirement error occured" trace "setPowRequirement error occured"
result = true result = true

View File

@ -347,9 +347,8 @@ proc executeOpcodes(computation: BaseComputation) =
try: try:
computation.selectVM(fork) computation.selectVM(fork)
except: except CatchableError as e:
let msg = getCurrentExceptionMsg() computation.setError(&"Opcode Dispatch Error msg={e.msg}, depth={computation.msg.depth}", true)
computation.setError(&"Opcode Dispatch Error msg={msg}, depth={computation.msg.depth}", true)
computation.nextProc() computation.nextProc()
if computation.isError(): if computation.isError():

View File

@ -358,14 +358,12 @@ proc execPrecompiles*(computation: BaseComputation, fork: Fork): bool {.inline.}
of paEcMul: bn256ecMul(computation, fork) of paEcMul: bn256ecMul(computation, fork)
of paPairing: bn256ecPairing(computation, fork) of paPairing: bn256ecPairing(computation, fork)
of paBlake2bf: blake2bf(computation) of paBlake2bf: blake2bf(computation)
except OutOfGas: except OutOfGas as e:
let msg = getCurrentExceptionMsg()
# cannot use setError here, cyclic dependency # cannot use setError here, cyclic dependency
computation.error = Error(info: msg, burnsGas: true) computation.error = Error(info: e.msg, burnsGas: true)
except CatchableError: except CatchableError as e:
let msg = getCurrentExceptionMsg()
if fork >= FKByzantium and precompile > paIdentity: if fork >= FKByzantium and precompile > paIdentity:
computation.error = Error(info: msg, burnsGas: true) computation.error = Error(info: e.msg, burnsGas: true)
else: else:
# swallow any other precompiles errors # swallow any other precompiles errors
debug "execPrecompiles validation error", msg=msg debug "execPrecompiles validation error", msg=e.msg

View File

@ -28,5 +28,9 @@ func allowedFailingGeneralStateTest*(folder, name: string): bool =
"RevertInCreateInInit.json", "RevertInCreateInInit.json",
"RevertInCreateInInitCreate2.json", "RevertInCreateInInitCreate2.json",
"InitCollision.json", "InitCollision.json",
# Failure once spotted on Travis CI Linux AMD64:
# "out of memorysubtest no: 7 failed"
# "randomStatetest159.json",
] ]
result = name in allowedFailingGeneralStateTests result = name in allowedFailingGeneralStateTests

@ -1 +1 @@
Subproject commit 743f14cf68f213a0cbead5e6dfc00ee3edc7fe1e Subproject commit 81aebe6a8955b9c6c598aaf36d2c3ff8edc0e5fa

2
vendor/nim-chronos vendored

@ -1 +1 @@
Subproject commit d3eac1d64341a45547ad298dcd9fcb34523473b8 Subproject commit c39c0696806a0ef09bc90e477ea6b177d2824699

2
vendor/nim-eth vendored

@ -1 +1 @@
Subproject commit b1be96269435a9d49c9afed2442042a7c5130eac Subproject commit e6164996c8e1ce1a33c17250935fc985b9120830

@ -1 +1 @@
Subproject commit 1e85ab9150dd3759c86b2a6c9148f3fad3d1694c Subproject commit e7a34b74f298eaabd7bdbe2f080bf9747ed6bfd9

2
vendor/nim-json-rpc vendored

@ -1 +1 @@
Subproject commit 9214b095fb0266e5cac44804663343cd8288a84c Subproject commit fc0665f88a4f24e9f51fe059ad4e943f3eed927e

@ -1 +1 @@
Subproject commit 173c7b4a86e6d75a69577166526b0f5840c45003 Subproject commit 88b79e230005d8301c3ae950abdbf8ad55e37f19

@ -1 +1 @@
Subproject commit e6c59d86be74ef4a7c4ee28cf61ebb6a9e2e5972 Subproject commit ae60eef4e8413e49fb0dbcae9a343fb479509fa0

2
vendor/nim-stew vendored

@ -1 +1 @@
Subproject commit 2c9ca5dabbee8f7b1eb6e24722033706f0f650dc Subproject commit 1c4293b3e754b5ea68a188b60b192801162cd44e

2
vendor/nimcrypto vendored

@ -1 +1 @@
Subproject commit e50298c7ac4d1bd6a087b38a9c27c2ae16271940 Subproject commit 71b41764aef41de04348c645b6e7d8bfe227fda2