Closed pysiak closed 9 years ago
Could you please try the following fix on your server?
src/lib/blockchains/namecoin.coffee
return cb(err)
Let us know whether that fixes the problem, thanks!
It would help also to know how you triggered that crash, as I can't reproduce it with okturtles.bit
. It happens because DNSChain thinks the domain doesn't looks like a Namecoin domain, and then there was a bug in our error handler for that.
It seems to fix it! Resolves existing domains correctly and doesn't bail on non-existing ones. I have unbound, namecoind and dnschain running on the same box. unbound.conf is set to forward all .bit queries to dnschain:
stub-zone:
name: "bit"
stub-addr: X.X.X.X@5333
A working query now shows this much debug. It looks like it's doing something a couple of times and it takes 2 seconds:
2015-03-08T02:03:20.660Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:20.663Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-bit (dns.coffee:75)
2015-03-08T02:03:20.664Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:20.665Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:20.746Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:20.751Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:20.751Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-bit (dns.coffee:75)
2015-03-08T02:03:20.752Z - debug: [DNS] received question
{ name: 'bit', type: 48, class: 1 }
2015-03-08T02:03:20.752Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'bit',
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:20.754Z - error: [DNS] namecoin failed to resolve (dns.coffee:158)
{ err: 'Invalid Request: bit',
result: undefined,
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:20.755Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 2, name: 'SERVFAIL' }
2015-03-08T02:03:20.760Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:20.762Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
2015-03-08T02:03:20.862Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:20.864Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:20.867Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:20.871Z - debug: [DNS] received question
{ name: 'bit', type: 48, class: 1 }
2015-03-08T02:03:20.872Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'bit',
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:20.874Z - error: [DNS] namecoin failed to resolve (dns.coffee:158)
{ err: 'Invalid Request: bit',
result: undefined,
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:20.877Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 2, name: 'SERVFAIL' }
2015-03-08T02:03:20.881Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:20.886Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
2015-03-08T02:03:20.888Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-bit (dns.coffee:75)
2015-03-08T02:03:20.890Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:21.062Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:21.064Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:21.067Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:21.069Z - debug: [DNS] received question
{ name: 'bit', type: 48, class: 1 }
2015-03-08T02:03:21.073Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'bit',
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:21.074Z - error: [DNS] namecoin failed to resolve (dns.coffee:158)
{ err: 'Invalid Request: bit',
result: undefined,
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:21.076Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 2, name: 'SERVFAIL' }
2015-03-08T02:03:21.078Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:21.081Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
2015-03-08T02:03:21.084Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-bit (dns.coffee:75)
2015-03-08T02:03:21.085Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:21.263Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:21.264Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:21.266Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:21.268Z - debug: [DNS] received question
{ name: 'bit', type: 48, class: 1 }
2015-03-08T02:03:21.269Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'bit',
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:21.273Z - error: [DNS] namecoin failed to resolve (dns.coffee:158)
{ err: 'Invalid Request: bit',
result: undefined,
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:21.274Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 2, name: 'SERVFAIL' }
2015-03-08T02:03:21.277Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:21.280Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
2015-03-08T02:03:21.283Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-bit (dns.coffee:75)
2015-03-08T02:03:21.284Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:21.462Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:21.464Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:21.467Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:21.470Z - debug: [DNS] received question
{ name: 'bit', type: 48, class: 1 }
2015-03-08T02:03:21.471Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'bit',
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:21.476Z - error: [DNS] namecoin failed to resolve (dns.coffee:158)
{ err: 'Invalid Request: bit',
result: undefined,
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:21.478Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 2, name: 'SERVFAIL' }
2015-03-08T02:03:21.480Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:21.484Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
2015-03-08T02:03:21.486Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-bit (dns.coffee:75)
2015-03-08T02:03:21.487Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:21.662Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:21.664Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:21.665Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:21.666Z - debug: [DNS] received question
{ name: 'bit', type: 48, class: 1 }
2015-03-08T02:03:21.666Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'bit',
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:21.667Z - error: [DNS] namecoin failed to resolve (dns.coffee:158)
{ err: 'Invalid Request: bit',
result: undefined,
q: { name: 'bit', type: 48, class: 1 } }
2015-03-08T02:03:21.668Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 2, name: 'SERVFAIL' }
2015-03-08T02:03:21.670Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:21.671Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
2015-03-08T02:03:21.673Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:21.863Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:21.864Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:21.866Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:21.871Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:21.878Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
2015-03-08T02:03:21.885Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:22.063Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:22.064Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:22.068Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:22.073Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:22.076Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
2015-03-08T02:03:22.079Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:22.263Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:22.265Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:22.268Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:22.273Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:22.276Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
2015-03-08T02:03:22.281Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:22.462Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:22.464Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:22.466Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:22.478Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:22.481Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
2015-03-08T02:03:22.484Z - debug: [DNS] creating bottleneck on: dns-X.X.X.X-dotbitwhois.bit (dns.coffee:75)
2015-03-08T02:03:22.662Z - debug: [DNS] received question
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 }
2015-03-08T02:03:22.663Z - debug: [DNS] resolving via namecoin... (<callback> dns.coffee:148)
{ domain: 'dotbitwhois.bit',
q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 } }
2015-03-08T02:03:22.665Z - debug: [NMC] namecoin resolve (<resources> namecoin.coffee:90)
{ property: 'd/dotbitwhois' }
2015-03-08T02:03:22.670Z - debug: [DNS] namecoin resolved query (dns.coffee:161)
{ q:
{ name: 'dotbitwhois.bit',
type: 28,
class: 1 },
d: 'dotbitwhois.bit',
result:
{ version: '0.0.1',
header: { datastore: 'namecoin' },
data:
{ name: 'd/dotbitwhois',
value:
{ ip: '192.185.225.13',
map: { '*': { ip: '192.185.225.13' } } },
txid: 'fff208790e3ce636c51eb9d198083f7404303607ca7a186fcef2cc792a3ee60b',
address: 'Mz7vhkSpYFcBanCFXjbpfSyUxmmEJLAFbg',
expires_in: 1274 } } }
2015-03-08T02:03:22.673Z - debug: [DNS] (<sendErr> dns.coffee:269)
{ code: 4, name: 'NOTIMP' }
Are you querying something multiple times? What's the offending query, and is it via DNS or HTTP? I haven't been able to reproduce that behavior by querying dotbitwhois.bit
via DNS on my end.
Must be something in my setup that is triggering it. When I query dnschain directly with:
dig -t a okturtles.bit @178.216.201.222 -p 5333
it works well.
When the query arrives forwarded by unbound it does this. I'll inspect the differences between the queries and report separately from this issue as this one's resolved.
Thanks by the way, it's been stable.
Hi, just upgraded and dnschain crashes after receiving a query. I get this:
IP and path obfuscated.