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

Link teardown after suite incompatible with parallel_tests #526

Closed
domcleal opened this issue Jun 7, 2017 · 3 comments

Comments

@domcleal
Copy link
Contributor

commented Jun 7, 2017

cef3957 introduces an incompatibility with the parallel_tests gem (used/recommended by puppetlabs_spec_helper) as it removes the module symlink after every suite has completed.

When using parallel_tests, the suite is executed by multiple processes and the teardown executing at the end of each suite can cause the symlink to be removed while another process is running a test. This causes intermittent failures finding resources within the module under test (e.g. https://travis-ci.org/puppet-testing/puppetlabs-postgresql/jobs/240309046).

Could the teardown simply be reverted, leaving whatever symlink was created in place?

@DavidS

This comment has been minimized.

Copy link
Collaborator

commented Jun 8, 2017

... or move the symlink create/remove to the tests using them. Will have to have a think about that.

@domcleal

This comment has been minimized.

Copy link
Contributor Author

commented Jun 8, 2017

Whether it's a suite or individual example before/after, it'd still cause errors between multiple processes as they're modifying the same link.

If cleaning up the link's important then it'd perhaps be better to copy/recreate the whole fixtures directory in a temporary dir, but that may create a new class of issues.

@rodjek

This comment has been minimized.

Copy link
Owner

commented Jun 11, 2017

Hmmm, damn, I didn't consider the parallel_spec case. I'll pull the link removal code.

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