[Pdns-users] remote backend
Alexis Fidalgo
alzrck at gmail.com
Tue Nov 28 19:37:45 UTC 2023
has to be on my side. i made a change in the way i read/write to the socket and now i get
socket(AF_UNIX, SOCK_STREAM, 0) = 12
connect(12, {sa_family=AF_UNIX, sun_path="/tmp/pra.sock"}, 110) = 0
write(12, "{\"method\": \"initialize\", \"parame"..., 66) = 66
poll([{fd=12, events=POLLIN}], 1, 1000) = 1 ([{fd=12, revents=POLLIN}])
read(12, "{\"result\":true}", 1500) = 15
write(12, "{\"method\": \"getAllDomains\", \"par"..., 70) = 70
poll([{fd=12, events=POLLIN}], 1, 1000) = 0 (Timeout)
poll([{fd=12, events=POLLIN}], 1, 1000) = 0 (Timeout)
close(12)
pdns now dies after the two POLL (timeout), i’ll work on my read/write code to fix this and let you know.
thanks again
> On 28 Nov 2023, at 16:21, Alexis Fidalgo <alzrck at gmail.com> wrote:
>
> the mail with the whole strace is kept because of the attach but i can see this
>
>
> sendto(3, "<30>Nov 28 16:17:46 pdns[167106]"..., 57, MSG_NOSIGNAL, NULL, 0) = 57
> socket(AF_UNIX, SOCK_STREAM, 0) = 12
> connect(12, {sa_family=AF_UNIX, sun_path="/tmp/pra.sock"}, 110) = 0
> write(12, "{\"method\": \"initialize\", \"parame"..., 66) = 66
> poll([{fd=12, events=POLLIN}], 1, 1000) = 1 ([{fd=12, revents=POLLIN}])
> read(12, "{\"result\":true}", 1500) = 15
> write(12, "{\"method\": \"getAllDomains\", \"par"..., 70) = -1 EPIPE (Broken pipe)
> --- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=167106, si_uid=0} ---
> close(12) = 0
> futex(0x7f5d0c6181e0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
> write(2, "Nov 28 16:17:46 PDNSException wh"..., 134Nov 28 16:17:46 PDNSException while filling the zone cache: Exception caught when sending: Could not send a message to remote process
> ) = 134
>
>
>
> it looks like the socket is being closed when pdns is trying to send a new message (the getAllDomains)?
>
>
>> On 28 Nov 2023, at 16:13, Remi Gacogne via Pdns-users <pdns-users at mailman.powerdns.com> wrote:
>>
>> Hi!
>>
>> On 28/11/2023 19:59, Alexis Fidalgo via Pdns-users wrote:
>>> Sorry about that, yes, this will work locally, meaning the remote responder (my script) will run on the same VM than pdns-auth, so pdns-auth will connect using a unix socket with the responder using remote backend.
>>> That actually occurs, this is what is shown from the pdns
>>> ---
>>> alz at nuc /opt/pdns-auth-4.8.3/sbin ./pdns_server
>>> Nov 28 14:52:54 This is a standalone pdns
>>> Nov 28 14:52:54 Listening on controlsocket in '/var/run/pdns/pdns.controlsocket'
>>> Nov 28 14:52:54 UDP server bound to 0.0.0.0:5300
>>> Nov 28 14:52:54 UDP server bound to 0.0.0.0:5300
>>> Nov 28 14:52:54 UDP server bound to 0.0.0.0:5300
>>> Nov 28 14:52:54 UDP server bound to 0.0.0.0:5300
>>> Nov 28 14:52:54 UDP server bound to 0.0.0.0:5300
>>> Nov 28 14:52:54 UDP server bound to 0.0.0.0:5300
>>> Nov 28 14:52:54 TCP server bound to 0.0.0.0:5300
>>> Nov 28 14:52:54 PowerDNS Authoritative Server 4.8.3 (C) 2001-2022 PowerDNS.COM BV
>>> Nov 28 14:52:54 Using 64-bits mode. Built using gcc 10.2.1 20210110 on Nov 28 2023 11:42:16 by alz at nuc.lesi.com.
>>> Nov 28 14:52:54 PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.
>>> Nov 28 14:52:54 [stub-resolver] Doing stub resolving for 'auth-4.8.3.security-status.secpoll.powerdns.com.|TXT', using resolvers: 192.168.86.1
>>> Nov 28 14:52:54 [stub-resolver] Question for 'auth-4.8.3.security-status.secpoll.powerdns.com.|TXT' got answered by 192.168.86.1
>>> Nov 28 14:52:54 Polled security status of version 4.8.3 at startup, no known issues reported: OK
>>> Nov 28 14:52:54 Reconnecting to backend
>>> Nov 28 14:52:54 PDNSException while filling the zone cache: Exception caught when sending: Could not send a message to remote process
>>> —
>>> this is what is showed on the responder when the
>>> ---
>>> 2023-11-28T14:52:54.907-0300 DEBUG handlers/handlers.go:65 pdns request received: {"method": "initialize", "parameters": {"path": "/tmp/pra.sock"}}
>>> 2023-11-28T14:52:54.907-0300 DEBUG handlers/handlers.go:50 Response {"result":true}
>>> —
>>> This same responder script, if using http returns exactly the same json, getAllDomains comes after the initialize, then the lookups, so the responder works ok.
>>> Problem is, when i switch to unix socket, throws the error on the red line after the initialize and dies
>>
>> That's very weird indeed, and unfortunately the unix connector is lacking a bit of logging in this area. Any chance you would be able to strace the authoritative server process?
>>
>> Cheers,f
>> --
>> Remi Gacogne
>> PowerDNS.COM <http://powerdns.com/> BV - https://www.powerdns.com/
>> _______________________________________________
>> Pdns-users mailing list
>> Pdns-users at mailman.powerdns.com <mailto:Pdns-users at mailman.powerdns.com>
>> https://mailman.powerdns.com/mailman/listinfo/pdns-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.powerdns.com/pipermail/pdns-users/attachments/20231128/a31da6e6/attachment-0001.htm>
More information about the Pdns-users
mailing list