Reported by https://twitter.com/Aronetics at https://serverfault.com/questions/1017877/freeipa-on-rpi3-kerberos5-timeout/1022215:
When deploying FreeIPA on Raspberry PI 3 (arm 32-bit), Web UI fails on one tab, Authentication -> Certificates.
In the error_log:
[Tue May 19 22:02:02.578593 2020] [wsgi:error] [pid 1364:tid 2941485888] [remote IP.119:53807] ipa: INFO: [jsonserver_session] admin@ARONETICS.COM: user_find(None, version='2.236', no_members=True): SUCCESS</br> [Tue May 19 22:02:05.062481 2020] [:warn] [pid 2099:tid 2494501696] [client IP.119:53807] failed to set perms (3140) on file (/run/ipa/ccaches/admin@ARONETICS.COM)!, referer: https://flash.aronetics.com/ipa/ui/ [Tue May 19 22:02:06.382009 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] ipa: ERROR: non-public: OverflowError: timestamp out of range for platform time_t [Tue May 19 22:02:06.382180 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] Traceback (most recent call last): [Tue May 19 22:02:06.382248 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] File "/usr/lib/python3.7/site-packages/ipaserver/rpcserver.py", line 368, in wsgi_execute [Tue May 19 22:02:06.382269 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] result = command(*args, **options) [Tue May 19 22:02:06.382288 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] File "/usr/lib/python3.7/site-packages/ipalib/frontend.py", line 450, in __call [Tue May 19 22:02:06.382307 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] return self.__do_call(*args, **options) [Tue May 19 22:02:06.382324 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] File "/usr/lib/python3.7/site-packages/ipalib/frontend.py", line 478, in __do_call [Tue May 19 22:02:06.382343 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] ret = self.run(*args, **options) [Tue May 19 22:02:06.382361 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] File "/usr/lib/python3.7/site-packages/ipalib/frontend.py", line 800, in run [Tue May 19 22:02:06.382379 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] return self.execute(*args, **options) [Tue May 19 22:02:06.382397 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] File "/usr/lib/python3.7/site-packages/ipaserver/plugins/cert.py", line 1835, in execute [Tue May 19 22:02:06.382415 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] **options) [Tue May 19 22:02:06.382433 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] File "/usr/lib/python3.7/site-packages/ipaserver/plugins/cert.py", line 1701, in _ca_search [Tue May 19 22:02:06.382453 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] convert_pkidatetime(obj['valid_not_after'])) [Tue May 19 22:02:06.382471 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] File "/usr/lib/python3.7/site-packages/ipaserver/plugins/cert.py", line 257, in convert_pkidatetime [Tue May 19 22:02:06.382490 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] value = datetime.datetime.fromtimestamp(int(value) // 1000) [Tue May 19 22:02:06.382508 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] OverflowError: timestamp out of range for platform time_t [Tue May 19 22:02:06.383531 2020] [wsgi:error] [pid 1363:tid 2941485888] [remote IP.119:53807] ipa: INFO: [jsonserver_session] admin@ARONETICS.COM: cert_find(None, version='2.236'): InternalError
Metadata Update from @abbra: - Issue assigned to abbra
Do we still support 32 bit platforms on server side? I was under the impression that 389-DS dropped support with 32 bit platforms long ago.
They only dropped i686, not armhfp.
See here: https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/armhfp/os/Packages/f/
Does something like this work on 32-bit platform?
datetime.fromtimestamp(0) + timedelta(seconds=2223604050)
Yes, it works:
>>> import datetime, os, sys >>> sys.maxsize 2147483647 >>> os.uname().machine 'armv7l' >>> epoch = datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc) >>> epoch + datetime.timedelta(seconds=2223604050) datetime.datetime(2040, 6, 18, 3, 47, 30, tzinfo=datetime.timezone.utc) >>> epoch + datetime.timedelta(seconds=2*sys.maxsize) datetime.datetime(2106, 2, 7, 6, 28, 14, tzinfo=datetime.timezone.utc)
This is incorrect. We dropped all 32bit platforms. I was very clear in the deprecation process with upstream, so if you are still shipping a 32bit variant even armhfp, that's probably incorrect as far as I'm aware.
@firstyear, you claimed only i686 is affected in the comment https://bugzilla.redhat.com/show_bug.cgi?id=1544386#c20"
Only i686 exhibits the issue, and only when using the glibc atomic types. PR_Atomic isn't affected, and no other platform is affected. I think when I made the counters 32b they worked as intended, but I need to do it again to test - of course, I also don't care about i686 anymore, and it's the only broken platform we have, so I probably won't ever check this :)
Only i686 exhibits the issue, and only when using the glibc atomic types. PR_Atomic isn't affected, and no other platform is affected.
I think when I made the counters 32b they worked as intended, but I need to do it again to test - of course, I also don't care about i686 anymore, and it's the only broken platform we have, so I probably won't ever check this :)
Based on this bug discussion Fedora decided to only drop i686, that's why it is still available in armhfp and other 32-bit systems. It was never demonstrated that glibc has the issue on other platforms.
Whatever the case, we can proceed with fixing this specific bug.
master:
Metadata Update from @abbra: - Issue close_status updated to: fixed - Issue status updated to: Closed (was: Open)
ipa-4-8: