Your message dated Sun, 12 Apr 2020 13:49:47 +0000
with message-id <[email protected]>
and subject line Bug#947091: fixed in manpages 5.06-1
has caused the Debian Bug report #947091,
regarding manpages-dev: timerfd_settime can fail with ECANCELED
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
947091: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=947091
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: manpages-dev
Version: 5.04-1
Severity: wishlist

Dear Maintainer,

the timerfd_create/settime/... manpage documents that reads from a timerfd
configured with TFD_TIMER_CANCEL_ON_SET fail with ECANCELED, however, I
found that timerfd_settime (and probably timerfd_gettime and others) have
the same behaviour, and of course youc an poll for this event as well, and
all this is not documented.

Background: I was implementing time jump detection in libev using the
relatively new TFD_TIMER_CANCEL_ON_SET feature. For this, I arm the timer
with some future value and only use it for the side effect of getting
canceled (although it might occasionally expire).

The timerfd_create/settime calls look like this (future it_value.tv_sec
value, zero interval):

   timerfd_create(CLOCK_REALTIME, TFD_CLOEXEC|TFD_NONBLOCK) = 5
   timerfd_settime(5, TFD_TIMER_ABSTIME|TFD_TIMER_CANCEL_ON_SET, 
{it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=1579464284, tv_nsec=0}}, 
NULL) = 0

all normal so far: On every time jump, I rearm the timer with
timerfd_settime, without having any other interaction with the timerfd
(other than polling it for read events). The following is the effect of
"date -s somevalue" three times:

   timerfd_settime(5, TFD_TIMER_ABSTIME|TFD_TIMER_CANCEL_ON_SET, 
{it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=949273200, tv_nsec=0}}, 
NULL) = -1 ECANCELED (Operation canceled)
   timerfd_settime(5, TFD_TIMER_ABSTIME|TFD_TIMER_CANCEL_ON_SET, 
{it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=949273200, tv_nsec=0}}, 
NULL) = -1 ECANCELED (Operation canceled)
   timerfd_settime(5, TFD_TIMER_ABSTIME|TFD_TIMER_CANCEL_ON_SET, 
{it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=949273200, tv_nsec=0}}, 
NULL) = -1 ECANCELED (Operation canceled)

>From this, I learn that timerfd_settime fails the same way as a read would
do (probably some error slippage happening) and despite timerfd_settime
failing with ECANCELED, it actually succeeds in rearming the timer.

Don't know if this is a kernel bug, but I assume this works more or less
as designed, but has escaped the documentation as TFD_TIMER_CANCEL_ON_SET
is a relatively new feature.

As a minor nitpick, the "Operating on a timer file descriptor" is a tiny
bit misleading, as it doesn't mention timerfd_gettime etc. as supported
"operations on a timerfd fd". And while it probably isn't a major thing in
the context, I do expect the utmost exactness from manpages-dev because
that is my past experiencw with it, so I suggest adding "additional" here:

       The file descriptor returned by timerfd_create() supports the
       following additional operations:

Thanks,
Marc

-- System Information:
Debian Release: 10.2
  APT prefers stable
  APT policy: (990, 'stable'), (500, 'unstable-debug'), (500, 'testing-debug'), 
(500, 'stable-updates'), (500, 'stable-debug'), (500, 'oldstable-updates'), 
(500, 'oldstable-debug'), (500, 'unstable'), (500, 'testing'), (500, 
'oldstable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, x32

Kernel: Linux 5.2.21-050221-generic (SMP w/8 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_DK.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages manpages-dev depends on:
ii  manpages  4.16-2

manpages-dev recommends no packages.

Versions of packages manpages-dev suggests:
ii  konqueror [man-browser]  4:18.12.0-1
ii  man-db [man-browser]     2.8.5-2

-- no debconf information

--- End Message ---
--- Begin Message ---
Source: manpages
Source-Version: 5.06-1
Done: [email protected] (Dr. Tobias Quathamer)

We believe that the bug you reported is fixed in the latest version of
manpages, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Dr. Tobias Quathamer <[email protected]> (supplier of updated manpages package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Sun, 12 Apr 2020 15:15:19 +0200
Source: manpages
Architecture: source
Version: 5.06-1
Distribution: unstable
Urgency: medium
Maintainer: Dr. Tobias Quathamer <[email protected]>
Changed-By: Dr. Tobias Quathamer <[email protected]>
Closes: 947091
Changes:
 manpages (5.06-1) unstable; urgency=medium
 .
   * New upstream version 5.06
     - Refresh patches
     - Document that timerfd_settime can fail with ECANCELED. Closes: #947091
   * Update d/copyright
   * Disable usage of pristine-tar
Checksums-Sha1:
 cc4c41154f00f8fef4e6f686dcdbca5ffc5a0ab4 1882 manpages_5.06-1.dsc
 8be7ba49982aaac1786156c58703fe2a1cc01cf2 1703140 manpages_5.06.orig.tar.xz
 7165ec890b86b8502329ee9320e707f4f1f0187b 76496 manpages_5.06-1.debian.tar.xz
 2787fa709627d57888d2cd008617f8e89a40b215 5900 manpages_5.06-1_amd64.buildinfo
Checksums-Sha256:
 04fc03290107f7c95113cbf2a895941242a9a75899fa5ea64c9af5d47a310b00 1882 
manpages_5.06-1.dsc
 70b8a902a9daa0a596188c1925373199dbad590eb06d7c0e505c4b33e8bbfe50 1703140 
manpages_5.06.orig.tar.xz
 09e29614f0678fc9617526a9d2741d1c15141897c3c3a2170062c2b5076d6557 76496 
manpages_5.06-1.debian.tar.xz
 9b5262b99cf765a33aeba5ab9d25a344156b3bbc694e8a0d428d65a2487dfdd5 5900 
manpages_5.06-1_amd64.buildinfo
Files:
 234677e885c9c8a8242d4083a379fa0b 1882 doc standard manpages_5.06-1.dsc
 df2054d875c83bbc0bc0cfb8f53f3d43 1703140 doc standard manpages_5.06.orig.tar.xz
 4ded500c2e18ec272e5cb07aee20ad90 76496 doc standard 
manpages_5.06-1.debian.tar.xz
 23fc7e07e2a4aa1927e2d4528e31ba80 5900 doc standard 
manpages_5.06-1_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEE0cuPObxd7STF0seMEwLx8Dbr6xkFAl6TGEMACgkQEwLx8Dbr
6xk3Iw//ZCpO2fbUWRO9GZA/9vhBnElqwye29YtixAmmP/BBy1Lafa2+4PdGg7dy
qKPOrXAVuvKxJOBPKu03Swn6JlJljgxV57n0k1+U/k8flGAcRw8GixqVMwm0XDOI
Lcl5AiUxZMIqqHqjxUBESgY7/No3/R77+PPT5JwKKbXgPM7OMZv3UWhlHjK3z0i3
qgfhx2LIbM/Xq6sC/SZ6c3pcchKWeMtGhqUiiYu0X2HJntubc7b7+wlXAO3Aq0z1
lBvfpOe7JNE0JRf6dqvmcff7dVI/lC+5Zf3zu0cwUykqi74TRNCXMd/SClGW6KQi
dT27Hy8c/KCvIx+FRtzSMe7+mf8TDY5NmonioKbPH8pQHjKW70n2j9wwdcMovMh8
kp59hIbM3g16HeIj5GyZDyRcZl35+f9b32gSlYaVDYBoGMUoAOhbsfF+i7EIDriP
nqtc6ssPFG7vNq0p9KDt8tDH04s27pCwZR15YNMLkOvc5lKf8eg+PWekLYfm5yL/
KkB3or/xlza0EiSEMiUk0cUqGxs00vgabOlAA8yrU1Hfx91S/xddPkdIIYvxkonO
vobfRhZFRBarOQS4vZfXeiZDSW3IJn5tgULMaB/I5S73ubbWcfmXLbxL3jRqvDBh
PJKJDW+zh1Wfq7CCgMWPazfIaTwyILepkqDqnJgpUfmT7xWwuUc=
=Hd0O
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to