[59] 
[DFN[西暦2038年問題]]は、
[[Unix time]]
の[[桁溢れ問題]]です。
[TIME[令和20(2038)年][2038]]に [[Unix time]] が[[32ビット整数]]で表現できなくなること、
およびそれに起因する諸問題であります。

* 西暦2038年

[166] 
[TIME[西暦2038年][2038]] = 令和20年。偶然ながらキリが良すぎるなあ。

[167] 
「2038年」っていわれるとなんかすごい未来でまだまだ余裕がありそうなイメージだけど、
「令和20年」っていわれるともうすぐそこまで来ている感がやばい。

[2] 
[CITE@en[LO47236: DOMINO SERVER DOES NOT START IF THE TODAY'S DATE IS 2038 JAN 1ST OR LATER]], [TIME[2025-02-13T03:20:27.000Z]], [TIME[2025-02-13T03:35:49.109Z]] <https://www.ibm.com/support/pages/apar/LO47236>

[3] [CITE@ja-JP[Dell Avamar for Lotus Domino 19.8 User Guide | Dell 日本]], [[Dell US]], [TIME[2025-02-13T03:36:15.000Z]] <https://www.dell.com/support/manuals/ja-jp/avamar-server/av_p_lotus_user_guide_19.8/year-2038?guid=guid-b8afeba2-e894-41ac-8491-3934c4a11a03&lang=en-us>


* Unix time

[SEE[ [[Unix time]] ]]

* 桁溢れ問題

[SEE[ [[桁溢れ問題]] ]]

* 前の問題

[SEE[ [[西暦2001年9月9日問題]] ]]

* 次の問題

[SEE[ [[西暦2106年問題]], [[西暦2232年問題]] ]]

* 歴史

-[75] [TIME[2004-02-11 00:45:51 +00:00]] ''[[名無しさん]]'': ''スラッシュドット ジャパン | 2038年問題、早くも顕在化'' <http://slashdot.jp/article.pl?sid=04/02/03/031211&topic=80>
- [147] [CITE@ja[【スクープ】コンピュータの“西暦2038年問題”発生、早くも日本を揺るがす | 日経クロステック(xTECH)]], [[日経クロステック(xTECH)]], [TIME[2023-11-25T07:20:22.000Z]], [TIME[2023-11-25T07:20:36.808Z]] <https://xtech.nikkei.com/it/free/NC/NEWS/20040202/139212/>

[76] [CITE['''['''tz''']''' DST ends 2040 in Oracle database]]
([TIME[2019-01-26 06:59:55 +09:00]])
<https://mm.icann.org/pipermail/tz/2019-January/027438.html>

[77] [CITE@ja[Y2038ProofnessDesign - glibc wiki]]
([TIME[2019-03-04 16:06:52 +09:00]])
<https://sourceware.org/glibc/wiki/Y2038ProofnessDesign>

[99] [CITE@ja[John Feminella 🌠さんはTwitterを使っています 「⏲️ As of today, we have about eighteen years to go until the Y2038 problem occurs. But the Y2038 problem will be giving us headaches long, long before 2038 arrives. I'd like to tell you a story about this.」 / Twitter]], [TIME[2020-07-31 11:57:52 +09:00]] <https://twitter.com/jxxf/status/1219009308438024200>

[131] [CODE[timeout(1)]]

[133] [CITE@en[Investigating why [[Steam]] started picking a random font]], [TIME[2022-11-21T14:03:52.000Z]] <http://blog.pkh.me/p/35-investigating-why-steam-started-picking-a-random-font.html>

[134] >>133 時刻を進めて戻したらおかしな[[フォント]]が選ばれるようになった →
[[フォント]]の[[タイムスタンプ]]が2038年を超えているために[[桁溢れ]]のエラーが(!)

[135] 
たかが[[時刻]]でこんな影響が出るなんて誰も思わんよなあw

[145] [CITE@en[Year 2038 problem - Wikipedia]], [TIME[2023-11-19T14:53:16.000Z]], [TIME[2023-11-25T07:04:50.551Z]] <https://en.wikipedia.org/wiki/Year_2038_problem>

[146] [CITE@en[Time formatting and storage bugs - Wikipedia]], [TIME[2023-11-24T03:13:21.000Z]], [TIME[2023-11-25T07:07:08.551Z]] <https://en.wikipedia.org/wiki/Time_formatting_and_storage_bugs#Windows_C_runtime_library>


- [155] [CITE@ja[Xユーザーの上原 哲太郎/Tetsu. Ueharaさん: 「IoTブームの時に工場とかにRaspberry Pi使った格安なソリューションを入れたところいっぱい有るんですが、time_tが32bitですので2038年問題をモロに踏みます。ラズパイって割と長く使われそうで。あと組み込みLinuxでtime_tは64bitにしててもファイルシステムはext3とかだとtimestampに2038年の壁。」 / X]], [TIME[午後3:12 · 2024年1月4日][2024-01-04T06:12:43.000Z]], [TIME[2024-01-05T03:38:29.000Z]] <https://twitter.com/tetsutalow/status/1742791145934233825>
-- [156] [CITE@ja[Xユーザーの上原 哲太郎/Tetsu. Ueharaさん: 「Linux 5.6から32bit kernelでもtime_tが64bitになったので2038年問題はだいぶ緩和されつつあるんですがそれでもtime_tをlongに代入するコードはアチコチに残って地雷になってます。ファイルシステムで言えばext2/ext3/ReiserFS/古いXFSあたりは2038年問題を抱えてるしMySQLのTIMESTAMP型もそう。」 / X]], [TIME[午後3:28 · 2024年1月4日][2024-01-04T06:28:35.000Z]], [TIME[2024-01-05T03:38:29.000Z]] <https://twitter.com/tetsutalow/status/1742795140820046138>


- [153] [CITE@ja[XユーザーのAoiMoe a.k.aしお兄Pさん: 「BSD は 4.4BSD で既に time_t が 64bit だったので、何で Linux は未だに time_t が 32bit な arch が残ってるのか謎なんだよなあ。FS のタイムスタンプは UFS2 で 64bit 化だっけか」 / X]], [TIME[午後3:36 · 2024年1月4日][2024-01-04T06:36:20.000Z]], [TIME[2024-01-05T03:38:29.000Z]] <https://twitter.com/AoiMoe/status/1742797090085077400>
-- [154] [CITE@ja[XユーザーのSODA Noriyukiさん: 「@AoiMoe time_t == long と決めてしまったのが元凶(→ILP32なプラットフォームは全滅)で、 そう決めた理由はたぶん初期のLinuxが同一アーキの商用UNIXと(ほぼ)ABI互換にしたせいでしょうね。 システムコール番号も同一アーキの商用UNIXに合わせた結果、アーキテクチャ毎にシステムコール番号がバラバラだし」 / X]], [TIME[午後3:39 · 2024年1月4日][2024-01-04T06:39:33.000Z]], [TIME[2024-01-05T03:38:29.000Z]] <https://twitter.com/n_soda/status/1742797901234164218>

[158] 
[CITE@en[GNU C Library Lands Year 2038 Handling For Legacy ABIs - Phoronix]], [TIME[2024-01-25T09:13:29.000Z]] <https://www.phoronix.com/news/Glibc-More-Y2038-Work>



[88] [CITE@ar[上原 哲太郎/Tetsu. Uehara على تويتر: "いまいち認知が広がらない2038年問題ですが、Siriは知っています。Siriに世界の終わりを聞くとこう答えることがあります。… "]]
(午前7:57 · 2018年9月26日 [TIME[2019-11-15 11:12:53 +09:00]])
<https://twitter.com/tetsutalow/status/1044722692576829440>

[FIG(quote)[
[FIGCAPTION[
[89] [CITE@ja[KDDI、「2038年問題」で1346万円を過剰請求 - ITmedia NEWS]]
(2004年03月08日 16時56分 公開 [TIME[2020-01-02 22:08:40 +09:00]])
<https://www.itmedia.co.jp/news/articles/0403/08/news023.html>
]FIGCAPTION]

> 2004年03月08日 16時56分 公開

]FIG]




[93] [CITE[LKML: Arnd Bergmann: '''['''GIT PULL''']''' y2038: core, driver and file system changes]]
([TIME[2020-02-03 06:58:46 +09:00]])
<https://lkml.org/lkml/2020/1/29/355>

[94] [CITE@ja[2038年問題に対応した「OpenBSD 5.5」リリース | OSDN Magazine]]
([TIME[2020-02-05 18:32:38 +09:00]])
<https://mag.osdn.jp/14/05/02/160000>

[95] [CITE@ja[OpenBSD 5.5、2038年問題に対応 | スラド オープンソース]]
([TIME[2020-02-05 18:32:45 +09:00]])
<https://opensource.srad.jp/story/14/05/06/1839242/>





[FIG(quote)[
[FIGCAPTION[
[103] [CITE['''['''GIT PULL''']''' xfs: new code for 5.10, part 1 - Darrick J. Wong]]
([TIME[2020-10-20T09:05:45.000Z]])
<https://lore.kernel.org/lkml/20201014205059.GD9837@magnolia/>
]FIGCAPTION]

> 
> - New feature: Widen inode timestamps and quota grace expiration
>   timestamps to support dates through the year 2486.
> [SNIP[]]
>       xfs: widen ondisk inode timestamps to deal with y2038+
>       xfs: widen ondisk quota expiration timestamps to handle y2038+
>       xfs: trace timestamp limits
>       xfs: enable big timestamps

]FIG]


[104] [CITE@en[Linux 5.10 to make Year 2038 problem the Year 2486 problem • The Register]]
([TIME[2020-10-20T09:06:23.000Z]])
<https://www.theregister.com/2020/10/19/linux_5_10_y2k38_fixes/>

[105] [CITE@en[XFS File-System With Linux 5.10 Punts Year 2038 Problem To The Year 2486 - Phoronix]]
([TIME[2020-10-20T09:06:35.000Z]])
<https://www.phoronix.com/scan.php?page=news_item&px=XFS-Linux-5.10>

[106] [CITE@ja[Linuxカーネル5.6、32ビット版で2038年問題への対応が行われる | スラド Linux]]
([TIME[2020-10-20T09:07:30.000Z]])
<https://linux.srad.jp/story/20/02/05/1249244/>

[107] [CITE@en[Pondering 2038 '''['''LWN.net''']''']]
([TIME[2013-08-29T09:22:51.000Z]], [TIME[2020-10-20T09:10:07.535Z]])
<https://lwn.net/Articles/563285/>

[108] [CITE@en[Linux 5.6 Is The First Kernel For 32-Bit Systems Ready To Run Past Year 2038 - Phoronix]]
([TIME[2020-10-20T09:10:30.000Z]])
<https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.6-32-bit-Past-Y2038>

[109] [CITE@ja[Linuxカーネル5.10、XFSファイルシステムの2038年問題に対処 | スラド Linux]]
([TIME[2020-10-20T09:10:49.000Z]])
<https://linux.srad.jp/story/20/10/19/194204/>



[124] [CITE@ja[GNU C Library、Y2038対策でレガシーABIに64ビット時刻のサポートが追加 | スラド IT]]
([TIME[2021-06-18T09:20:09.000Z]])
<https://it.srad.jp/story/21/06/17/1724219/>


[132] [CITE@ja[xssbnuny (furdu soon?)さんはTwitterを使っています: 「Boss: your leave request broke the system Me: uh sigh Boss: why do you want to take the specific week off in 2038 Me: for this exact reason」 / Twitter]]
([TIME[2022-04-19T05:34:41.000Z]], [TIME[2022-04-19T05:35:47.147Z]])
<https://twitter.com/xssfox/status/1514493425248522245>


- 
[162] 
[CITE@ja[Xユーザーの上原 哲太郎/Tetsu. Ueharaさん: 「当研究室では2038年問題を追いかけていますが、この度論文が出ました。 https://t.co/GQNlF8ofer 「32bitを超えるtime_t型を持つ環境における2038年問題とその検出」 関連して本研究で開発したツールを含むDockerイメージを配布開始しました。合わせてご活用下さい。 https://t.co/VB0BZZjjuc」 / X]], [TIME[午後3:43 · 2024年9月17日][2024-09-17T06:43:12.000Z]], [TIME[2024-09-19T05:26:26.000Z]] <https://x.com/tetsutalow/status/1835932500985807211>
-- [163] 
[CITE@en[GitHub - cysec-lab/y2k38-checker: Clang Static Analyzer plugin which detects the Y2K38 bug in 64bit enviroment]], [TIME[2024-09-19T05:30:00.000Z]] <https://github.com/cysec-lab/y2k38-checker>
-- [164] 
[CITE@en[UNIXよ2038年を越えてゆけ - Speaker Deck]], [TIME[2024-09-19T05:30:12.000Z]] <https://speakerdeck.com/ran350/unixyo2038nian-woyue-eteyuke>



[165] >>162 社会的に有意義な論文と推察されるが配布は有料。広めたいのかそうでないのかよくわからん。
どういう広報戦略でコードと発表資料は無償配布して肝心の論文だけ [[paywall]] に隠すという発想になるのかが理解不能。


[78] [CITE@ja[第25回 32ビット環境に迫る「2038年問題」 時計がおかしくなると…… (1/3) - ITmedia エンタープライズ]]
([TIME[2019-07-29 12:07:37 +09:00]])
<https://www.itmedia.co.jp/enterprise/articles/1607/13/news020.html>

[79] [CITE@ja[KDDI、「2038年問題」で1346万円を過剰請求 - ITmedia NEWS]]
([TIME[2019-07-29 12:09:47 +09:00]])
<https://www.itmedia.co.jp/news/articles/0403/08/news023.html>



[1] [CITE@ja[XFSの2038年問題にオンラインでも勝利したい - Gentoo metalog]], [TIME[2024-10-17T02:22:03.000Z]] <https://gentoo.hatenablog.com/entry/2024/10/16/173710>



[4] [[ファイルの時刻]]
