Closed CampionLoong closed 3 years ago
runtime.sigpanic
=> critbitgo.(*internal).direction
=> critbitgo.longestPrefix
=> main.(*PatternMatcher).Eval
=> main.(*BlockedNames).check
So, maybe we need the inputs of blockedNames.patternMatcher.Eval(qName)
to investigate what happened.
https://github.com/DNSCrypt/dnscrypt-proxy/blob/5d6b35213cd6983e98fcb98fba444bf01eb76107/dnscrypt-proxy/plugin_block_name.go#L27-L28
As seeing patternMatcher
, I wonder if there are any low effective regExp blockedNames ...
@CampionLoong, can you provide your configuration? Especially, the blocked_names_file
. Maybe also the DNS benchmark app to get the queried names.
Edit: Suffixes or Prefixes, but not Patterns https://github.com/DNSCrypt/dnscrypt-proxy/blob/5d6b35213cd6983e98fcb98fba444bf01eb76107/dnscrypt-proxy/pattern_matcher.go#L127-L158 Guess is not enough, need more details.
critbitgo.longestPrefix
* 40, then crashed?
https://github.com/DNSCrypt/dnscrypt-proxy/blob/5d6b35213cd6983e98fcb98fba444bf01eb76107/vendor/github.com/k-sone/critbitgo/critbit.go#L272-L295
Maybe too much stack usage?
Don't have time yet to scrub the config file to share. But the block name list when the crash happened is attached
99exe.yourcomputerhaveaseriousproblemcallon18662968997exe.yourcomputerhaveaseriousproblemcallon18662968997exe.yourcomputerhaveaseriousproblemcallon18662968997exe.yourcomputerhaveaseriousproblemcallon18662968997calltollfreenow.playnewgamesonline.com
is a pretty long expression :)
Is that in the block list? I don't even know - never look into that until a problem occurs
Yes, and it could probably be replaced with playnewgamesonline.com
(even though even this domain is just a parked domain).
Maybe too much stack usage?
Reasonable.
Maybe it's occasional, like all apps, unless it can be reproduced.
Not much to add here -- I don't really know what the trigger is, only that I happen to see this dump on my SSH session. A DNS benchmark was running at the time: