Windows pg_basebackup unable to create >2GB pg_wal.tar tarballs ("could not close file: Invalid argument" when creating pg_wal.tar of size ~ 2^31 bytes)
Hi, I'm sharing with the community what seems to be a new bug report about
basebackup affecting only basebackup on WIN32 - that was reproduced based
on a 3rd party customer case. Maybe anyone has hints (internally EDB is
just about to start looking on this too):
C:\backup>"C:\Program Files\PostgreSQL\15\bin\pg_basebackup" -U postgres -D
"backup2" -F t -P -X stream -c fast --compress=none --create-slot
--slot=slot1
Password:
pg_basebackup: error: could not close file "00000001000000020000007D":
Invalid argument
pg_basebackup: error: background process terminated unexpectedly
C:\backup>systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name: Microsoft Windows 11 Pro
OS Version: 10.0.26100 N/A Build 26100
C:\backup>"C:\Program Files\PostgreSQL\15\bin\pg_basebackup" --version
pg_basebackup (PostgreSQL) 15.8 // PostgreSQL 15.8, compiled by Visual C++
build 1941, 64-bit
C:\backup>dir "c:\Program Files\PostgreSQL\15\data\pg_wal"
[..]
11/20/2024 08:26 AM 16,777,216 0000000100000002000000C2
11/20/2024 08:26 AM 16,777,216 0000000100000002000000C3
11/20/2024 08:27 AM 16,777,216 0000000100000002000000C4
11/20/2024 08:27 AM 16,777,216 0000000100000002000000C5
11/20/2024 08:27 AM 16,777,216 0000000100000002000000C6
10/29/2024 10:25 AM <DIR> archive_status
706 File(s) 11,844,714,496 bytes <<<------ 11GB WALs
3 Dir(s) 246,568,095,744 bytes free
C:\backup>dir backup2
[..]
11/20/2024 08:24 AM 3,740,529,664 base.tar
11/20/2024 08:24 AM 2,147,614,208 pg_wal.tar <<<---BUG triggers
2 File(s) 5,888,143,872 bytes
2 Dir(s) 246,568,091,648 bytes free
Note: 2^31-(2147614208) = -130560
--- how to reproduce:
1. Install PostgreSQL on Windows.
2. alter system set max_wal_size='3GB';
3. select pg_reload_conf();
4. create and load ~big table (~25GB) with disabled TOAST compression to
trigger higher WAL generation:
create table t (id bigint, t text);
alter table t alter column t set storage external;
insert into t select i::bigint as id, repeat(md5(i::text),4000)::text as r
from generate_series(1, 2000000) s(i);
5. While the above is running , run pg_basebackup.exe with -F tar mode in
parallel so that it has chance to create >2GB pg_wal.tar file
Please see the screenshot from strace/sysinternals: it seems it is coming
because of a failure to WriteFile() nearby 2^31 offset (casting
issue?/integer overflow?) -- (5) -- when writing to pg_wal.tar, which
triggers the unhelpful error message for close()/CloseFile() ==
E_INVALID_ARG / ERROR_INVALID_HANDLE -- (1). Also notice a nearby marker
(1) after writing 40960b it goes reverse (lseeks back to
2147573248-2130836480=16736768b) and writes final 512b (header?) -- nearby
(5), just before issuing that QueryStandardInformationFile() call
(stat()??) - which probably is just somehow part of error handling (?).
This literally looks like something like off_t/size_t would be limited to
2^31 somewhere. All of this is on standard NTFS and affects only pg_wal.tar
, but not e.g. base.tar (in the original report it whas writing at offsets
~ 51GB fine).
-J.
Attachments:
DB_2834_sysinternals.pngimage/png; name=DB_2834_sysinternals.pngDownload
�PNG
IHDR k � z�4� ��IDATx^��l#�y��{���|���c���5��������irMk���J+2)�ZN�q ����X@�E��%)����u����J������I�����+���z�:�{�����w����������!%J��� H��gfgv�y��>��|����9<�g8�����q�~|���g�8(J
����'��m�����|>�x����Z@19���F�� �����,�y����U���g^W�x�-8qrD����m����L�^��2�AA�+���� ��7�` (�XK[���������k���>��{�a6
AAAAAAqB�����d p�!�����q��; _y�)�q�|��w��'� � � � � � .h�� zLf�/Q����~�����������e�_v ����E���� ��O���>� �4� �Z�C��y� ?��~<����xAAAAA�o�v�A����w��7�
k��b}`��;�k����W�����A�b
��n��O�O���~�=X� �f����%� $����x������]8qr/N���N�K�2�8�F'� � � � ��8�'���oh���^z���o8x�a�����q ��;�����"~��9��5�}�:��]�2��ox���W_;������\��-o�w����&� B��g~���o����Z�8�'N���g��������mo�a�w]��^ze�IAl2�n�|��� �~b;��v��f��� �����5$��v�P
�L�B�
�OQR(4��h
P�
���*
)<�E��q����q��U2��V�a����j)�����v�|>�s��'���^��Z- ����[.3���`�6���0j�@����������������CXSv���E��=1����;������
q����b{���zM/���l�x��1}x�Nh�����A� n:����^�g���u���.v�Y�e�W����c/��/�v��
T�<S��PR�oNX�}Oo5
R�Gn�y�V�{��6X;��L��,���Z�x����*d��v"[��'?H6�^���:��|6�=�C��6�u]�=���E�xa���D��8��f��8e�����W6So���Q���l(��T�����(��s ���i)o�T)_�����O�j�da���C����P�V�g?���2�X��A��7��m&2z�������%��x��N����'�-_PFO��17��>v��h����|3�� �Z��R���K�LD� 2���9��-%��R(N`ddYj��Sz"&-,L�022b]��mP
���z�b5 �w��0-�JNE-k���"W��~�%��\z6���q��:��y��x���M������2��c4�� �c4A�e��e����Y�������.t�P/������W��N;��c/����p�go@��+��/����J��r�����B$1�����jy�DtHZ:N�r0�2���B��uj^Se�#� �9�0�X�#P�=�����'�+�������&PC���K+ck��cE=���om�:�/��y������6�yN��?�t��n�b�tn���=�����l]��f��<����b��+u[Fgz���n����Yv�L��|��dPR�r �V��b3("���e���g��B�h���r��!�~D�2��rPkE�o�M�XS=����p$m����*F��G�g�4�����"�~��:���,C���t�X$��C����(��>�U�%��~@�Y���nDu���� �~�k������gj-6�CX<-S��� �p�"9�xk�*+ ���1�Z�q��1$"-,��i0��� cAXt,�H���r �2WD=��X4���!��c�b�_YB*���"us?��D�X
-� �����j�Y�z���n����q����}�?~������7^% `�q��u��s����=��g�����-� �O0��w
�Wu�"*B����t"����8���8������7
jm������.9��,�������XkAu)�a5�Vm��I�x�l��T��>;��0�(��cb��4��0��;��V|���
��e1�&*l?�
����#a�������S��G����XL��"��A�,�l�@P2e�Q
��q��\���� ��2�f��Mm2�u]�&��� h�'����8r��[&A��#iD�Y�����������G��tgG��������"�K:#�X�Q�<�C���~��[N�N&P���y/�� �Z��F-�*�}"��e�O�03�����a����r�P]�x2�C��X5�&HE�U�b�a>NA�a��UD<_,��A�~Dx�S_�y&�E�XX8����A��f����5������X��C��/q�r�@� ���q/������]�[=���j����5@U
����M��j����y�l����KT��U�j��B5���F�V���&x����:�r����e�����R� �6�{Q:��ID����K�����w���������8��^8���&��*t����X}�U���S��mkVA�}I�r�g�3�+9�A����������a��%����7<��)-uH���m��bECr,�H} e��
�_�l�����n�,'o�]"��O`�qmC�=��!��.@&m�vtP�� jSQ�������n�b�t�rr��@B�^ae�C"RGq�����m�����%�mGAb,�i3K`��3�n��(G�r��!��� u�%�6� >��������-c��w5����K7�c _����e���<��3���������B�zFPF�(c�$�����I����=/��4��l>���}���d��l��y�t����|�� �>�k�s�a���(�� �f�������$��.$�?*F�+�����
@�X�a+�5s'�7i�v�d�.stH�U�P2]g��:�/����Y���Qs����!9���_�������g��_��_� �w�^�]2
�5�*��ON���8����r G>�[�D � ��(N��m�5����| i�\�� o�O�D�l�q�b��]�(J
Gr@�v���#>�-WB�������1�O2n�6��e����9�;-SE)�#;��4n�u�Ft��Y�#i����N�����=j�D�b'`�(��zq�5��\g���(�Va�m}3����"�%����Tf����`dd
�)��%�����O
�� gR����!"\.Al/�
��cWQ����@VV��|m���Y\��;��\B.�#{�|���7�j��Y�v��>�.a&C,�CM ��D����7 �!vY���8m�-ns7�m*��62��Ev,�"=�|f���<�ecII�<}�a4=z{n���������M�`e�X������l�����.��>V����O��6���[&A��!���dO�hA�P���1��!��;97����%�~q�����uY�e���Hg��6��D7n�ae�-BO�P-TQJ��\R����M��g�
���c[s�S��|���y��'At-�� ��y$j3�:&Z��RX�8j�2�CP�K3���e�"*�a����LVG"WB��@~����e!}?�o0��\�$0�t/6 �
kmW���P[n���&(� 8w�"����k��������WcM�m~y`��3|t4����}��po�.F�s:f�Pn��m*.���J�[;���/�<qS�;�+��qL�%�i
�����v��/����/�7���]U�.k�H��I=��M����:+�G>A=k>�a�b'`�ov�n�������t��*? �>��_��<��[��[s�:_y��no�V���yr�{N�F��N� ���V#k��0���a�'���K������D������w������Q��L_��.���%��x�
l
�!�{ ��V����
�M��wKg����d,��M'*g�3+�c��p�����e0��� d��09;�9����&���j@"������`'��x��r��!���`}�)c�P�.�Fdpt��Y�s�hn���1�O�#V&+�M���g��'g'� ��CV����|A�vA��}��EO$m* ��IZ��RNu���D�3�b
F��Y�$��XY��V
���
�a��S�Q���������20e��d)�kc�����s�S�Hm��t�d����}��>�u ���}���}<����{w�X_��}u�~�����+/�=�_��I�E���h)�]�=�YJ;���]�Y��I�J�^w)�!���l)�H���F�w�}�_1�[�goS����1,�"���||!�� v���[�a�����q��������k�n9���`��drq�+@��E����h��m�!��?��\���68�Y����@$1�M�I��.W�B����"]g������6"��o��uHO���6�U���x�:���p2��}f��@24�����^��d���e��,�<k-nf�������~�N��
,>d�t�L�e�D_��
�
/�*"!�M��7c,�z]$C���:��7O�Q�<X��2&� �1U�6���P���t�w�F��;I;�&��{5�@���bm�cM���'��.L�g��{mL7\����rJ��&
c�{������4w���V6�~�X�\!O��@�������� �>�!<�����})$���_{�o�Ppi��8��k�����_y��������$��u��"/ui31s�36��8�2���122���5m�R[Y�01;"y�Ph�������Q�Y �2m&���#�:�0�!��#���=H
���p��N� xji?{�@����~ ���/����,��R1:��U[t�VVuDG0����W�A���V"y�eTpv(��5�h�#�kB&�~zg�H����!�����>���=����{��Gm�����|,�O'UN�g����GP����
cC��GI��w������,�q6�'��lX�E���@��2q����j ���4���F6\}��>���K�01<=��>�b{&P�OF����Y��0i�M���H� 6���y�� �Z���P7��R�T�F�9�EK��]gX�'{g��r��������=�����Pa�WV��5XK�"���]6�WS�tpM��R����S����K���R�V����w���n����
�� ��u����S�_�?�?��+
��s\�� K�����4�#Hq�O"�����mb.���p4$��@[�2���f����e�z���mO8����Y�,��������f�*�L&a��h���M���#�~�����#V�����Q�Nx��������1kE�����w�te �H�Hw��W�A����r���hH��h!�,�Q�����,����o�_�����6�n���,$�d9��m0�m(���:����li����%��Mxm�����v,&L������= S���d����{���,�qm@�07��_�9������WEKa~2��uV�a41W�#��8g:��KVX)$�-� ������9T3)G��2U���� D�����b,������NuF��Q���qe��V$���?�6��lZ;�'�|+�� �Z��Fl��;n��8���b]I��e�)L, ����d�P1�&��Y� �]E)�����&0�e,/��S�g���lX���eT�U,�T��^b�A��"����{w���������=00 � ��s������w��I����(-�����V9:���y��5�$�eF��:V�,/�1��]R�Y��T���g$�Bw�K���V��J ��l�n������3�����g]���`�Gn>�y����]e��_��{���D1�wM64MW+i�l3^�N7�V#���.��(�VSY����5�w���\os
z��u�T���^�%�^��X{�D�-�}�r�j
��I� ����E�P�rtf��l����:���!��D���������
���m��nSq��B�c1Q�0�� �����(��c��mo�����J���N�0�8�@M��Z�:W^-z�o����r����'����K)�<e�8i��,a���e���}R�F��r��!�~�h�"i�2�uLB���D��c �x&<���������%��`�M��Q���Eed�`5�L;���%��mO1b;��#=�<����Y��N�O �����o����{4MC��1_�M��_@��30v��5�<��96����0�< ]���Q�*%�X��/'��k� ������/iZ��_<��?sN���F�sm�q�8���>����;��Al1J����%�L���7�6�N��N�y�{����iGw���I���S�Y� ��(Z�<PL�I��N�R7�E�yo�|�^��a3�$�{e�� b���o�?�e-�S������0���� ���!S��o�fK�����:��F�x��<��|������ >���x��3��;�����G>~��0R ��d���$%����-��n�,{>��y �vto +{�>o��v;��%� z������lG�����n��`��l�,�����v�^�:'��\�/k b�x��?����������_�<�AfG���0��!n��j-�v����5A��}w��=��?�������
����.A�v�f�Q6r�2i{iG��OA����N"� �_��b-Al[^����k��
���Gp�]��(AAAAAA�e-������k�;��B����q��� ��'����W/~�!_|� � � � � � ���k ��df��o���.8���h�{��_��E`� �k�;q[t_�0���a��#�pI#� :���5<4���
�����S����GAAAA��kw�?�9��}O|����k/�q����f�y�:p�~qk��� �0��6��t���{�����5�oO�����X� B���>�'�x����'�����x�� ��G/���3lt� � � � � ��a�����HDg��0~��Y�� �������?~?}�v��>c��.@��7�m�������W��g.a����;�`EA!|�3�������}-N���'����WB���� ���7������ /�2��$� 6M���K/�?; j;� �� �DA�d.^4��X���-BQ4�2U4
)6�CX<EI���"�)l @�2(Th4h4�(���D2EC�I��c���WQ���Z��
�����������HYlL�����R�;��\�<���fp��B�2 (8x�u8x�u8��[1u�o�w~}k�n3�����'�;��p�v>��[�"��zVlO`�y+�e���Mov4���;��EzA�.����_�����~�����tq���������x���t�BU&�T��'�T����e���[�F�����m���e�
���!S�>�����2������
h����f������*��67��������g|�C��6�u]�=���E�xa��#����9q<:�����q�&a��l����m�*�>��P
�B�e�UQH�� ��/
�R���R������������-� �EK�P�:�~�m�e��V5���o�}�Ld�:��� �!�K2:#D���GF@���#�5v�lC�����%��AT���s����hc� ���k��T����&6��L��|q�GEIa����DV�����H�I1���X�8f�E�t�����D,��D
H���77L���SQ�Z����U�}Fbp�:/���XlE]E.��!����_ ��A�A�=��A>��f��fw��?;��EzA�N�O��'�p��{�>��?{��_�Fwx��n<V: ����o��"�1���h��V��'�C*��q����a�1��E��X�N�k�lx�D�#g�F�z��'q@��r%����3��jH�4�~iel�`�rL��'P
�g�
~�����|.=���8bY���k��v���m_��<�A�&Q:^�h�(j;Q:7�r��Y~����.De3�S�~bdd�l���-�3�}yb�AE��,;p��J�Mm2(�J�t�mb�����2q���}M�l�mPQ�e�D?�hTJ9����7�&P���HQR8�6��Xr���#��h��X�~�}?�z���� �!�Kr:C��\����;n|:��K��Q$�����k{p��+�_����A�-�n�)S9��Zl���xZ��I}���Er���UV +�c����P"�cHDZX8VA�0`4g�����X�z��&