Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tests: Run global cleanup at end of tests #3783

Closed

Conversation

Projects
None yet
3 participants
@danielgustafsson
Copy link
Member

commented Apr 15, 2019

Make sure to run curl_global_cleanup() when shutting down the test suite to release any resources allocated in the SSL setup. This is clearly visible when running tests with PolarSSL where the thread lock calloc() memory which isn't released when not running cleanup. Below is an excerpt from the autobuild logs:

  ==12368== 96 bytes in 1 blocks are possibly lost in loss record 1 of 2
  ==12368== at 0x4837B65: calloc (vg_replace_malloc.c:752)
  ==12368== by 0x11A76E: curl_dbg_calloc (memdebug.c:205)
  ==12368== by 0x145CDF: Curl_polarsslthreadlock_thread_setup (polarssl_threadlock.c:54)
  ==12368== by 0x145B37: Curl_polarssl_init (polarssl.c:865)
  ==12368== by 0x14129D: Curl_ssl_init (vtls.c:171)
  ==12368== by 0x118B4C: global_init (easy.c:158)
  ==12368== by 0x118BF5: curl_global_init (easy.c:221)
  ==12368== by 0x118D0B: curl_easy_init (easy.c:299)
  ==12368== by 0x114E96: test (lib1906.c:32)
  ==12368== by 0x115495: main (first.c:174)
tests: Run global cleanup at end of tests
Make sure to run curl_global_cleanup() when shutting down the test
suite to release any resources allocated in the SSL setup. This is
clearly visible when running tests with PolarSSL where the thread
lock calloc() memory which isn't released when not running cleanup.
Below is an excerpt from the autobuild logs:

  ==12368== 96 bytes in 1 blocks are possibly lost in loss record 1 of 2
  ==12368== at 0x4837B65: calloc (vg_replace_malloc.c:752)
  ==12368== by 0x11A76E: curl_dbg_calloc (memdebug.c:205)
  ==12368== by 0x145CDF: Curl_polarsslthreadlock_thread_setup (polarssl_threadlock.c:54)
  ==12368== by 0x145B37: Curl_polarssl_init (polarssl.c:865)
  ==12368== by 0x14129D: Curl_ssl_init (vtls.c:171)
  ==12368== by 0x118B4C: global_init (easy.c:158)
  ==12368== by 0x118BF5: curl_global_init (easy.c:221)
  ==12368== by 0x118D0B: curl_easy_init (easy.c:299)
  ==12368== by 0x114E96: test (lib1906.c:32)
  ==12368== by 0x115495: main (first.c:174)

Closes #xxxx
@MarcelRaad

This comment has been minimized.

Copy link
Member

commented Apr 15, 2019

Hmm, where are the corresponding curl_global_init calls? Only implicitly via curl_easy_init? 😕

@danielgustafsson

This comment has been minimized.

Copy link
Member Author

commented Apr 15, 2019

Hmm, where are the corresponding curl_global_init calls? Only implicitly via curl_easy_init? 😕

Correct, didn't seem worth the code churn to do more in the tests.

@bagder

bagder approved these changes Apr 15, 2019

@bagder

This comment has been minimized.

Copy link
Member

commented Apr 15, 2019

How did you detect these problems now? Anything we should do to make them stand out better for the next tests we add so that we don't just reintroduce this?

@danielgustafsson

This comment has been minimized.

Copy link
Member Author

commented Apr 15, 2019

How did you detect these problems now? Anything we should do to make them stand out better for the next tests we add so that we don't just reintroduce this?

They are flagged by the autobuilds as failures on the PolarSSL build, see for example https://curl.haxx.se/dev/log.cgi?id=20190415005043-6846#prob3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.