CZ-NIC / knot-resolver

Knot Resolver - resolve DNS names like it's 2024
https://www.knot-resolver.cz/
Other
355 stars 59 forks source link

Segmentation fault with new version 5.4.1 #74

Closed micron10 closed 3 years ago

micron10 commented 3 years ago

Hi I build new version + knot-dns 3.1.1 but after try to run :

[ 190.210560] kresd[3304]: segfault at 0 ip 0000000000000000 sp 00007ffdfb797980 error 14 cpu 3 in kresd[400000+8000] [ 190.236458] Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6. [ 216.630076] kresd[3462]: segfault at 0 ip 0000000000000000 sp 00007fff699954a0 error 14 cpu 3 in kresd[400000+8000] [ 216.657033] Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.

micron10 commented 3 years ago

This is config :

-- SPDX-License-Identifier: CC0-1.0
-- vim:syntax=lua:set ts=4 sw=4:
-- Config file example usable for ISP resolver
-- Refer to manual: https://knot-resolver.readthedocs.io/en/stable/

-- Network interface configuration
net.listen('0.0.0.0', 53, { kind = 'dns' })
net.listen('0.0.0.0', 853, { kind = 'tls' })

-- Refer to manual for optimal cache size
cache.size = 0.5 * GB
cache.storage = 'lmdb:///var/run/kresd'

-- load modules
modules = {
    'view',
    'stats'
}

-- log statistics every second
local stat_id = event.recurrent(1 * second, function(evid)
    log(table_print(stats.list()))
end)

-- stop printing statistics after first minute
event.after(1 * minute, function(evid)
        event.cancel(stat_id)
end)

-- speed_monitor definition
-- prints warning if more than 5% of total answers was slow
function speed_monitor()
        local previous = stats.list()   -- store statistics in persistent variable
        return function(evid)
                local now = stats.list()    -- save actual statistics to variable
                -- number of total answers between 'now' and 'previous' states
                local total_increment = now['answer.total'] - previous['answer.total']
                -- number of slow answers between 'now' and 'previous' states
                local slow_increment = now['answer.slow'] - previous['answer.slow']
                -- if percentage of slow answers is bigger than 5%, print warning
                if slow_increment / total_increment > 0.05 then
                        log('WARNING! More than 5 %% of queries was slow!')
                end
                previous = now
         end
end

-- execute speed_monitor every minute
local monitor_id = event.recurrent(1 * minute, speed_monitor())

-- apply RPZ for all clients, default rule is DENY
-- policy.add(policy.rpz(policy.DENY, 'blacklist.rpz'))

-- whitelist queries identified by subnet
-- view:addr('192.168.1.0/24', policy.all(policy.PASS))

-- drop everything that hasn't matched
-- view:addr('0.0.0.0/0', policy.all(policy.DROP))
vcunat commented 3 years ago

I don't know... it does not happen for me, with this combination of versions and configuration file. The error doesn't suggest much either, except that ip 0000000000000000 would most likely result from call/jump with a NULL pointer.

vcunat commented 3 years ago

Could you get a stack trace? Difficulty depends on your set up; it could be as easy as running coredumpctl gdb and then bt inside.

micron10 commented 3 years ago

Hi @vcunat

Finali after full rebuild and clear all old build (knotdns headers all others ) now work sorry

vcunat commented 3 years ago

Ah, if you mix up libknot 3.1.x and 3.0.x (mismatching libs and headers), there could be similar issues due to ABI changes.

Generally I'd recommend to use our packages.

micron10 commented 3 years ago

Thanks i will try

На нд, 22.08.2021 г. в 19:07 ч. Vladimír Čunát @.***> написа:

Ah, if you mix up libknot 3.1.x and 3.0.x (mismatching libs and headers), there could be similar issues due to ABI changes.

Generally I'd recommend to use our packages https://www.knot-resolver.cz/download/.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/CZ-NIC/knot-resolver/issues/74#issuecomment-903291593, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADCWD5F7OTOCHGAGBMOYSBTT6EODZANCNFSM5CRN5J6Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .