-
Notifications
You must be signed in to change notification settings - Fork 378
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revert "Buffer message tags and the original timestamps" #1144
Comments
I've been noticing the same behaviour with desynced timestamps as well (often just a second or two), I think.. And it happens quite often. If only mIRC is the suffering client, I think the default option should be on, not off, though. |
ZNC follows the server-time specification and won't be breaking it for users who ignore the documentation where FAQ has My client supports server-time and all timestamps are wrong. Even if the users had read the documentation, they missed bug reporting guidelines entirely. |
@Mikaela: As I said earlier, I agree users should take steps to ensure a correct system clock, but I think I've given a strong reason to still revert this to the old behavior nonetheless, namely that clocks still can go off by a few seconds (or even more) in between the intervals, which will again cause issues until the next interval. Or do you honestly expect Windows users to synchronize their clocks every time they intend to connect to ZNC? That will quickly become very annoying. Also expecting every user to do this is not realistic (even with clear instructions). Let alone having them fiddle around in Windows system settings in an attempt to speed up the weekly synchronization interval. By the way, here is a nice quote from the server-time spec: The keywords here are Also, here's the info I guess I neglected to include as I thought I already provided enough relevant info in my opening post: |
You are the only person suffering from that issue as all other people asking this question and getting that FAQ entry as reply have been happy with it and not have any issues. If you have issues with Windows's own NTPd, you are free to replace it with something like the NTPd that is also used on Linux. https://www.meinbergglobal.com/english/sw/ntp.htm |
You are making assumptions. I am not the only person, I'm making this request on behalf of other people. |
You are the only person who hasn't been happy with the solution to sync your clock unlike all the people who asked this earlier. There is a reason why it's Frequently Asked Question. At IRC I said that this also causes breakage to ZNC.
If you remove server-time, this won't work, but currently this works as described and is correct. |
I also said at IRC that I have one PC from 2006. It's running systemd-timesyncd with the instructions from previously mentioned FAQ entry ( |
At IRC it was pointed out that this commit is not in any stable release, so I am sorry about comments such as this. |
The fact is that it looks odd and will bug anyone who doesn't like It's really hard for me to care if my clock is off by 2 seconds at maximum. Asking users to install software because the native program doesn't work as Seeing as znc has worked fine without for so many years, I see nothing
|
Please read the whole thread. At IRC it was pointed out that this commit is not in any stable release, so I am sorry about comments such as this. I thought this was in 1.6.0 or 1.6.1 and that @Robby- somehow suffers from issue which everyone else on #znc has solved by time syncing and I thought that they are unhappy with the NTPd which Windows provides and suggested trying (port of?) the official NTPd which is used on *nix side. |
their original post also implied that they were running on the latest git, strengthened by the commit referenced. That paragraph referred to the future (i.e. 1.8 release), not 1.6 |
I didn't think about clicking the commit and reading what tags include or not it. Specific version information that is requested in CONTRIBUTING.md again was only given in the third commit. |
It appears that I never remembered to paste the #ircv3 discussion on this issue from 2015-10-08.log:
|
If this happens, it must be user level setting so admin cannot break ZNC for users who have their clocks on correct time or use echo-message capable clients. I also disagree with having the old behaviour as default (but I also disagree with the whole issue being issue). |
Why do you disagree on the default? Should the "always functioning" behaviour not take precedence over the "often works and causes annoyance in the case it doesn't" behaviour? Most users will not exactly know what is going on and end up confused. To me, this comes across as a bug very often and would lead to many false bug reports. |
Because that is workaround for broken behaviour causing incorrect behaviour on proper clients. I won't be commenting this issue anymore until the IRCv3 working group has decided on ircv3/ircv3-specifications#182 and preferably written to the server-time specification what is the right thing to do. |
It's up to the client to interpret the timestamps, ZNC is doing nothing wrong here. The client can choose to unwisely display timestamps that refer to the future as they are or, more sensibly, warn the user or ignore the timestamps in this case altogether. |
It's not timestamps from the future. It's often timestamps from the past, and in general just leading to undesirable behaviour. The previous behaviour worked fine for me - znc forcing this new thing onto me without a setting to turn it off is bad. If the previous behaviour has worked well since the software was made, I see no reason to force a new change of behaviour onto us that seems to be less ideal and leads to much confusion. It's the same way how encoding defaults to "legacy, not recommended" and assumes the user to set it correctly. Occurance today: I could not verify if an user was using autorejoin-on-kick because the timestamp of the rejoin was 1 second before the kick. |
What you are saying is already the case, but not exactly as you imagine. The default "always functioning" behavior is that
Encoding defaults to legacy because it's non-trivial or impossible to figure out the encoding when it's not signaled explicitly. This is not similar to I think the request to add such a switch to ZNC is similar to asking email servers to not send the timestamp of an email to the client because it could look odd when displayed to the user if the user's clock is wrong. But the way it works is that the email client has the timestamp anyway and figures out what's best to do with it. It's true that for email a few seconds often don't make a difference but it's the same idea. I've picked email as an example, you can check out whether you see the correct timestamp in WhatsApp, Skype, Facebook Chat etc. if your clock is wrong.
If the server sends timestamps in all messages then this suggests broken behavior from the client as a KICK only happens when the server sends the KICK, not when the client sends the KICK to the server. Therefore, if the server sent timestamps in both cases (KICK+JOIN) the client either ignored one of them or displayed the kick prematurely, before it actually happened. |
I do acknowledge the existence of the problem, but I believe this issue is knocking on the wrong door. |
At the very least, having some notification from ZNC to the client when all buffers have played back would be nice to have, so we could have a client-side script listening for this special notification and then turn off the server-time cap again. This way we can still have the nice integration into our client that this cap offers (because during buffer playback I do not mind that the clock is off a little bit), and not have the annoyance of inconsistent time stamps afterwards. |
@Robby- ZNC sends playback in a batch, if client supports batches. |
So, I've been running a recent git checkout for a little while now, and there has been some confusion and trouble for users, probably caused by commit c17c8c0.
@jpnurmi: While in theory this looks like a good idea to do, this is not practical, in fact it causes confusion and messes up the time stamps / continuity for clients that request the server-time cap and whose machines have a clock which is off (example provided below).
Don't get me wrong, the buffering of messages with time tags is perfect for
buffer playback
when you connect to ZNC (like it was before this commit was made), but after the buffer has played back, this time tagging should stop again so clients/users don't get messed up times due to clocks being off compared to the time on the server which ZNC runs on, when they are actively chatting.An example:
timetester
is a remote user, andtimewizard
is the user connected to ZNC. This issue also happens for other events, such as quits, kicks, etc.You could argue that users should fix their clocks, and I agree, but in practice you can't really require this from every ZNC user, and even if they do set up synchronization this issue can still happen due to for example slow intervals between synchronizations (Windows for example does this only once a week, which is plenty of time for the clock to go off again by a few seconds).
So, I would like to request to please revert this commit or make it optional (with the old behavior as the default) if you really want to keep this in.
The text was updated successfully, but these errors were encountered: