Thread: Re: [HACKERS] [COMMITTERS] pgsql: Fix bool/int type confusion
Peter Eisentraut <peter_e@gmx.net> writes: > Fix bool/int type confusion > Using ++ on a bool variable doesn't work well when stdbool.h is in use. > The original BSD code appears to use int here, so use that instead. I'm fairly unhappy with this approach to fixing this problem, because localtime.c is not Postgres-maintained code; we try to keep it in sync with the upstream copy maintained by the IANA timezone crew. Patching it like this will interfere with the next sync attempt, and patching it only in master will cause back-patching of that sync patch to fail. I checked the tz list archives and discovered that this problem was already reported to them back in May: http://mm.icann.org/pipermail/tz/2017-May/024995.html Although indeed their previous coding had had the variable as "int", their response was not to change it back to int, but to get rid of the loop incrementing it, because that was intended to support the possibility of 2 leap seconds on the same day, which according to them is a widespread misunderstanding of the applicable standard. So the code in their git repo still has the variable as bool, but there's no ++ operator on it anymore. This also means that the portability problem is purely hypothetical; given valid tz reference data the code wouldn't ever try to increment "hit" to 2 anyway. It's even more hypothetical for us, because we don't use leap-second-aware zones. They've not made a new tzcode release since May, due to lack of political activity in this sphere this year, although I gather that one is likely by November or so. However, we have precedent for sometimes syncing with their git tip to absorb code bug fixes, cf commit 7afafe8af. Therefore, what I would like to do is revert this commit (0ec2e908b), and then either leave the problem to be fixed by our next regular sync with a released tzcode version, or else force a sync with their git tip to absorb their fix now. In either case we should keep all our live branches in sync. I'm willing to do the code-sync work either way. Comments? regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
On 9/21/17 11:46, Tom Lane wrote: > So the code in their git repo still has the variable as bool, but > there's no ++ operator on it anymore. > > This also means that the portability problem is purely hypothetical; > given valid tz reference data the code wouldn't ever try to increment > "hit" to 2 anyway. It's even more hypothetical for us, because we don't > use leap-second-aware zones. It's not so much that there is an actual portability problem. The problem is that the compiler issues a warning for this with stdbool. > Therefore, what I would like to do is revert this commit (0ec2e908b), > and then either leave the problem to be fixed by our next regular sync > with a released tzcode version, or else force a sync with their git tip > to absorb their fix now. In either case we should keep all our live > branches in sync. I'm willing to do the code-sync work either way. That makes sense. There is no urgency on the stdbool patch set, so waiting for this to be resolved properly around November seems reasonable. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: > On 9/21/17 11:46, Tom Lane wrote: >> This also means that the portability problem is purely hypothetical; >> given valid tz reference data the code wouldn't ever try to increment >> "hit" to 2 anyway. It's even more hypothetical for us, because we don't >> use leap-second-aware zones. > It's not so much that there is an actual portability problem. The > problem is that the compiler issues a warning for this with stdbool. Understood. >> Therefore, what I would like to do is revert this commit (0ec2e908b), >> and then either leave the problem to be fixed by our next regular sync >> with a released tzcode version, or else force a sync with their git tip >> to absorb their fix now. In either case we should keep all our live >> branches in sync. I'm willing to do the code-sync work either way. > That makes sense. There is no urgency on the stdbool patch set, so > waiting for this to be resolved properly around November seems reasonable. I've just been going through their git commit log to see what else has changed since tzcode2017b, and I note that there are half a dozen other portability-ish fixes. I think that some of them affect only code we don't use, but I'm not sure that that's the case for all. So I'm a bit inclined to go with plan B, that is sync with their current HEAD now. As far as I've been able to tell, they don't have any special code QA process that they apply before a release. They push out releases based on the need to update the tzdata files, and the tzcode just rides along with that in whatever state it is in. So there's not really any reliability gain from waiting for an official code release --- it just is a bit easier to document what we synced to. That being the case, absorbing their changes in smaller chunks rather than bigger ones seems easier. I don't have the sync process totally automated, but it's not that painful as long as there are not too many changes at once. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
On 9/21/17 14:58, Tom Lane wrote: > I've just been going through their git commit log to see what else has > changed since tzcode2017b, and I note that there are half a dozen other > portability-ish fixes. I think that some of them affect only code we > don't use, but I'm not sure that that's the case for all. So I'm a bit > inclined to go with plan B, that is sync with their current HEAD now. I suppose it might be good to do this after 10.0 final is wrapped? -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: > On 9/21/17 14:58, Tom Lane wrote: >> I've just been going through their git commit log to see what else has >> changed since tzcode2017b, and I note that there are half a dozen other >> portability-ish fixes. I think that some of them affect only code we >> don't use, but I'm not sure that that's the case for all. So I'm a bit >> inclined to go with plan B, that is sync with their current HEAD now. > I suppose it might be good to do this after 10.0 final is wrapped? I went and did it already. I'm not particularly worried about the impending 10.0 wrap --- the changes are minor as such things go, and we've generally not worried about giving previous tzcode syncs more than a few days' buildfarm testing before shipping them. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers