localstack / awscli-local

💲 "awslocal" - Thin wrapper around the "aws" command line interface for use with LocalStack
Apache License 2.0
1.06k stars 81 forks source link

Fork bomb/memory leak with awscli-local==0.15 #44

Closed grouville closed 10 months ago

grouville commented 3 years ago

Your 0.15 release crashes my docker and my buildkit container.

Source: It contains a fork bomb / memory leak

Using the previous version (0.14) fixes the issue.

In my tests, I upload a file to a previously instantiated S3 bucket using the CLI. I do this inside a buildkit container. Check the memory usage and the amount of children spawned after a few seconds using your command:

$ docker stats
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O         PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.51%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB    57
252627f19fbb   dag-buildkitd                                                    5.37%     184.7MiB / 8.748GiB   2.06%     0B / 0B          2.35GB / 85.1MB   13
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O         PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.51%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB    57
252627f19fbb   dag-buildkitd                                                    5.37%     184.7MiB / 8.748GiB   2.06%     0B / 0B          2.35GB / 85.1MB   13
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O         PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.09%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB    57
252627f19fbb   dag-buildkitd                                                    0.00%     184.7MiB / 8.748GiB   2.06%     0B / 0B          2.35GB / 85.1MB   13
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O         PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.09%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB    57
252627f19fbb   dag-buildkitd                                                    0.00%     184.7MiB / 8.748GiB   2.06%     0B / 0B          2.35GB / 85.1MB   13
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.06%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    65.88%    210.6MiB / 8.748GiB   2.35%     0B / 0B          2.35GB / 87MB    43
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.06%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    65.88%    210.6MiB / 8.748GiB   2.35%     0B / 0B          2.35GB / 87MB    43
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.08%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    106.31%   310.3MiB / 8.748GiB   3.46%     0B / 0B          2.35GB / 87MB    109
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.08%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    106.31%   310.3MiB / 8.748GiB   3.46%     0B / 0B          2.35GB / 87MB    109
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.09%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    103.28%   427.3MiB / 8.748GiB   4.77%     0B / 0B          2.35GB / 87MB    184
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.09%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    103.28%   427.3MiB / 8.748GiB   4.77%     0B / 0B          2.35GB / 87MB    184
...
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.06%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    103.97%   2.612GiB / 8.748GiB   29.86%    0B / 0B          2.35GB / 87MB    1609
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.06%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    103.26%   2.723GiB / 8.748GiB   31.13%    0B / 0B          2.35GB / 87MB    1678
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.06%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    103.26%   2.723GiB / 8.748GiB   31.13%    0B / 0B          2.35GB / 87MB    1678
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.07%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    103.06%   2.82GiB / 8.748GiB    32.24%    0B / 0B          2.35GB / 87MB    1738
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.07%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    103.06%   2.82GiB / 8.748GiB    32.24%    0B / 0B          2.35GB / 87MB    1738
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.07%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    103.57%   2.929GiB / 8.748GiB   33.48%    0B / 0B          2.35GB / 87MB    1807
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.07%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    103.57%   2.929GiB / 8.748GiB   33.48%    0B / 0B          2.35GB / 87MB    1807
CONTAINER ID   NAME                                                                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
b402535797bb   5d1c5ed09c264cf780ae55d08e059f71_localstacklocalstack01216_f4b8e3   0.07%     295.2MiB / 8.748GiB   3.30%     2.9MB / 44.1kB   872MB / 5.76MB   57
252627f19fbb   dag-buildkitd                                                    103.29%   3.039GiB / 8.748GiB   34.74%    0B / 0B          2.35GB / 87MB    1876

We go from 13 PIDs, to 1876 in a matter of 30 seconds, same for the disk usage (180mb to 3gb). ECR also has the issue (upload of an image to a previously created registry), I believe this is due to a global leak on the command

whummer commented 3 years ago

Thanks for reporting @grouville . Can you please share some more details (e.g., are you using an alias for aws/awslocal, by any chance?), or ideally a reproducible example that we can look into? Thanks for your help!

lakkeger commented 10 months ago

Hi! We just wanted to follow up on our last message to see whether your issue has been resolved. Were you able to get it working with the latest version of LocalStack? We would appreciate your feedback!

grouville commented 10 months ago

Hi, It seems to have been resolved with the last versions 🙏