[systemd-devel] Antw: sd_journal_send non-blocking call

Vaibhav Dahiya vdahiya at ncsu.edu
Fri Jul 19 19:37:32 UTC 2019


Since sd_journal_send uses

fd = journal_fd();
which has

fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0);
this socket is opened without a non-blocking call.

This might cause the unix socket daemon to block this .

The other approach could be passing a nonblocking flag to

k = sendmsg(fd, &mh, MSG_NOSIGNAL);

*MSG_DONTWAIT* flag .

ARE ANY OF THESE APPROACHES TRIED OR is there a plan to support this
complete non blocking sd_journal_print call  ?

regards


On Thu, Jul 18, 2019 at 2:52 AM Mantas Mikulėnas <grawity at gmail.com> wrote:

> On Thu, Jul 18, 2019 at 12:44 PM Ulrich Windl <
> Ulrich.Windl at rz.uni-regensburg.de> wrote:
>
>> >>> Mantas Mikulenas <grawity at gmail.com> schrieb am 18.07.2019 um 10:06
>> in
>> Nachricht
>> <CAPWNY8XS1jw9iU_a-tagNw-v0NqeMAcWDRpftPdeKW_NFanqtA at mail.gmail.com>:
>> > On Thu, Jul 18, 2019 at 10:32 AM Ulrich Windl <
>> > Ulrich.Windl at rz.uni-regensburg.de> wrote:
>> >
>> >> >>> Vaibhav Dahiya <vdahiya at ncsu.edu> schrieb am 18.07.2019 um 02:53
>> in
>> >> Nachricht
>> >> <5d2fc2f0.1c69fb81.214d0.1aca at mx.google.com>:
>> >> > Hello,
>> >> >
>> >> > I am using sd_journal_send api() api call to log messages on syslog
>> >> server.
>> >> > I see that this uses
>> >> > sendmsg(fd, &mh, MSG_NOSIGNAL) call.
>> >>
>> >> Aren't syslog messages UDP anyway? When would an UDP send block?
>> >>
>> >
>> > No, program APIs use Unix sockets (/dev/log,
>> /run/systemd/journal/socket).
>> > You only get UDP when your local syslog daemon is configured to forward
>> > elsewhere.
>> >
>> > That said, both are datagram sockets, I'm not sure whether sending to
>> Unix
>> > dgram sockets can block or not?
>>
>> ??? Datagram _is_ UDP
>>
>
> UDP is datagram, but datagram is not always UDP.
>
> "UDP" specifically means the datagram transport protocol that runs over
> IPv4/IPv6, nothing else. Unix sockets (AF_UNIX) have a datagram mode but
> they do not use UDP (or IP). Netlink is datagram-based but it isn't
> UDP-based. &c.
>
> --
> Mantas Mikulėnas
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/systemd-devel



-- 
Best Regards,
Vaibhav Dahiya
Master's. Candidate in CSC (Computer Science)
North Carolina State University
Ph: (919) 888-8429
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20190719/facb688a/attachment.html>


More information about the systemd-devel mailing list