Unexpected memory usage for repeated inserts within plpgsql function
Hi Hackers,
I have been seeing memory usage increasing for a simple plpgsql function. Could you please take a look and check is it a bug?
The function definition is:
create function f() returns int as
$$DECLARE count int;
BEGIN
count := 1;
LOOP
count := count + 1;
begin
EXECUTE 'insert into test values(10)';
IF count > 1000000 THEN
EXIT;
END IF;
exception when others then
end;
END LOOP;
END$$
LANGUAGE plpgsql;
When I ran this function by "select f()", from top command, I could see memory usage (Resident memory) kept on increasing:
Then I used gdb to suspend the process each time insert was actually executed, and issued " (gdb) p MemoryContextStats(TopMemoryContext) ". From the server log, I saw only "SPI Proc" part of all the memory contexts was increasing:
My question: Is this problem as-designed?
Thank you for your time!!
Guangzhou
Attachments:
3001F611@F63AED64.58A69057application/octet-stream; name="3001F611@F63AED64.58A69057"Download
�PNG
IHDR � � �%�� IDATx��
tU�>�d��0�� ��lf@Y���q��9a���f6:���U�0h����,q�4� h�1�c~N�� _�6C�%� 8��u0�I�t��k
Sg���[U�����_AQ��I��~��}���������^/Q��~?qU� ���*�# ~��� �U.&�����/o�MP����"���6R�?�{O6�������\ �T~g�����#��*L,���3��������)����h�GH��z������*D9K�D�5�+�����H?�/A~m�b���&���"�N��sU�� �
���H��\���l�j���V�d�x��c�O���0���c2�%�gU��� ��Ed`}�A������(9��+���e���O`�$Wb�����{]��%8W���*��� /��:H~P��T������{D��fb��1"43�|i\�x��@._�L>��s�r�����<H���e���K���}���W��we-p5�^-����:�o�.�E"&�p��V+Y��������W8���KD�X��[�Z��~;i8#$���Dip^LZ��+!��?��>���E*Ll+��|����_h��P���@�!.i��40�(\�8t&f��%�z�
��E��
����?
���J���b��+O�H����;I'o��PY����C�^��f%N�f��l������X�wD9w�� �P������L���pF�� pJ������Z��(�g<<��+���e�y{���w��-�_��������6���E�����8����((�F^k�J������W�x��6d�s�J��7��L~�u�|}�u6��:}����{=���������e� hyi>�~�S�"���l��`��g���������|7y=?y�.�~���Zq%dB8����H���T�~���>��:P~�s(|�9h�
������}����s(�r����L��f������8��>������t�s8.U�[��$R�R�{y�t�_W#���u��i�^�����U�]�O�������S���������n�_|kL�/�RC��Y!9�#���C_�����z�������������;�a(�59���(��Jq����cJ�NwP���o���F��{��x<���� ���I
/����{�c�1��P��d�i�A@k~g���D?�C}����?���A^�;N������uUO�|�:�����>�&���c�E9_7>��S]�xy�����I�a����_�[d"�������c���HKX7��}�n ���$]}�/�*@��K���G#v=_�I#"������1<���j�W�2!��'���G����M��?��7�p�(�}<����P�x��uX>����)��N4e�E4�|��'qa�3��t���n�x�����%�z�<X-�����M���]�����x%�-p�On��\;���~d�]����hhh������t-!K������� ����9\�r0sx����3o6����=��HeM%�]�C���=N'���aM���
�1��@�_��77������gPB|'<�')�t"<k���#�b�����%�M��X{�zA�~�a<c���E�C���� //����8:m5���VN���M8}�G�U��j������0��lN�yX�������T��Ti�/�������9�9Fo���o-��9EE����W���*e����k������e��?���A��}�a��k����9�)�.��me�����N ,__ B+V-����-���U �s�!7{>�D������c��zh���"d��`2eb�o�hi��~{��EeeX �^��Pp������ �,Dvv
�v�J ��:��E)T/�
z�aN���0�� ^�����l���Z���h(��u�(��- 2��c�9&�x��;\�u
�,/3�����uY�o���L��~\rSo� f�0��� ���4�����~��z=����\��)({+��Te�p������DvJ6~����T��sIUp���� ��l����Q7 ���#F ��}�)�������1H�|hL<�yXC��{�X��HnY�����V�o�!%{9�x$����lN���U\h��89��. M����,kz��g&3�����N����s�2�~ �can6���#�@��g���|���Evv�w�1���U'�c��.<�E�3�
�;������N���QS4'�#�V,�]���2����yf���.��L�N�7+6�c����.��v��a�0!��U��a1�p��9y�_�J�s�����B!���'��!�~�sg�r��i}sd�`�F|�th���� ��@��������������eg�R���������t|�����4�)�����T^rr�_v����'���
P�b�fJ�e��G�G�����S+��G���xfPf}���w#of
f�`��-���993Q{Z^���B��6�=U����d�+�F�#���7�����x�����]�pz/���D�����#�tGF)���$�Wl�����+�>
^���^��W ��8f�����6 �������t�(�Y�����W&]t@^N�����9g"�F���xx����h����0*-��q��?O���Lp=��2�zd��x.����VO�~���`��qH� �G�����#<\D��x���k�8O�g6����^�Kc��FV��3sfb�#���U >�T��Y ���� �������>i���B ��;6.gc�������#z�����F�:�e?�����Nl�����O����$v9�� �a���,�aq���s�&f>�����6����0v�(y=�(wi��!��2 �,o&f���o���3�S:�3j^�������c�X^��Tt��,*��-�� ���5Z�5��+
B>Rh�SyO1?��Gz>9q����gwa���Z��j����t�t`/���ml=2�t��m����9yB�i�������N�9�������!�~�sg�r��m�E��#?Q�sL+5����@����G8��nGX���d
� }����YH�z^�G*m4<F�O�����1�}�0Y���^*o���T�A6��2���b+w���A�������\��F�\M,�H��f���B,�i�]��&
�HGw7�8y��LH7Y�e������4|J)��|���Ph� ����l���t����c7����D?�>�7J�I�������+���j�M������ ���<�L�H_�.�"�^��PU�3)�F>� }����Od�^Rn�W��8[_Nl,A>QG
�������P���6I����]�y���#B|g��������f����T�����*��������KJ1����'il�
I�Aa[VIN��Y�ByL����:�2^�v�������$�}���G:;���'D��� M�h��e�Y��n�h]�T�����TzPS��Imy%iV��!���]�40��`��BRh�{~)�u��E%��>��t4Q��t��Ho���2���������Pr|�8�P�g�������(�����o���ad!���GI�����P9��"> p����;YZ7� ��z��xC����C��8��'�z�']���b#U���*8OG��5B��~ D�r�����Y��E�Ii�*d~W'�U�6��o
�!e"����JHz�U)|�W~��&�Y�B�8H@��C,�B/�%��4<�.rQ��E
�Z{��L�"R� ��o~�l�o%�YH7��Y���AQ$��"rB�����ISK/R���4���f'E�.����XKv���I��3LgQ�H�[�de�y&�}��OYK��"�:i{��A,X� ^{���+H�W �����������ez[�6��M�^%�������Mk��'�Z������B{�������*v���V�G���H� �lJ�D�s�
����DH���
bg��;T�'��'�o���Z��&����$�N0]^��D��'�'q�����44�|���-���X��M�B�2.������%��s/O��Rd*���������x!�R"����V��D ������H�����D�����l������N���P=+�S���4���&�� n�J��p��Ul'NUh� /4�����.�� ��Z�����v2�ZR��
� w^/io��h=iw{���
��p��g<��qC#�s3�j�����S�Q�� :�h��F6"�Y�q�$�D�8�<TA��� �2�v���d��J���E��W4����A�<)��"r������d�����#��;B��~�����S8�B��|��b�8w�0��.��F� ����W��;�97��S�s�������JY?,D�8z^�w����<�'3'�3����'K��
��_��W�7�k}r�����K�*�dAV�_
�U����Fi�\L���v�7����U������Rto{�G����Y�#V#�@m!�[Y�v��]����0Z�������Gm//+�x� �1�@���+�Mf���zX2F�����<����5�+�[G�����v���Rz2���1��AL�T���i�sXo)�����_\5B��n[����Q5��:}���c���v��m����L^<�����}'Ob�;��Uz*!���3\������G �YS0a�y�W�o�������5�-�d�v��|VW�rI]0�s�e!:�v����D1n�{5�#�'���G�1=�glLw��i��\���x�E�vC���"Lf�="������N�w�����YLQ������5w���2��Lfy����i�-)��8���.�w=������0O���W�����[Fb{�'q��'�����u�iFf�*���?��^���x����,�}e���,=<UE�O�p"�� ��^��x��#���M���x9����0���g���#������*��� '��s&���^����=�)8��Aw�r�)v� �"Es&�3S��
��v%��Q�@�@��G@8�����ss����;��L��;�p�}���1�dL���u�*[��1*�><�����p��i.py �G/���+��� ��tW�������l��Ix�n�(s:�)�.E������1n�p��0V^����M��L��7o����1JA?S9 ?Fk����b\� i���E�*�MinNG�utgqFhw1�v����Vc���Y�p����y���Rz2���p�|L��u=r�l���@[a3��z��j)v�F�����1��sQR��p��/��92yy�b��'�I��������v��Jk9��.����R��# ic���� �wWc���5���mD�15�I��e>��q��.�y�-���S�=��� �b�Co���c�!yLO����KQ}�b-����,�8�T�)
�F
�G�
�(�{��=��U��)ys�7�C+6a�N������a�(��&wi��a&������d?]����bu�,`�$�]�$���t
b���4dd�����3���������al5������S�RN�7�������� �O{�@�Lqr�������ySOn���?��O�G�����<QZ�|���A�9\�&� ������S�:���
?���#��!����
"����@|3[��ni`�������T��4�J�X������������mF�
� >�-U�P��'A��@�P\g�4�f������Si��~��v^o0��mx�V��=������E(����1�'�������������;��oK���(I����`v\'~�`�~
����p�0��t\���h�����[K��q���� s�D�fM�m�n�Om�3N��#s^?����c��8�������_���c�^���x{d����%�������9�������v�-M0E�M��5u-�M1����,��{����l
o�7��K��xX��3���DzQRXY�o/��-��nI(�d�����}�G������~%z�-�E�x�,-�2��a��=�i���2��e��5��irS� w�5����q�����7� ��j�PZM�g�����;j�p���2��8�j���%�3:���]uS ���w�`-��Y?����`��(@G�=����L�D��@��Od[`���N��@�<