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

Some processes die silently, but the whole test finishes with exit 0 #907

Open
mnmandahalf opened this issue May 25, 2023 · 1 comment
Open

Comments

@mnmandahalf
Copy link

mnmandahalf commented May 25, 2023

Running parallel_rspec on CircleCI, I figured out some process died silently (propably with its memory issue, but I'm not sure) and finished logs are not shown.
But the whole test was finished with exit code 0.

Here is the command:

bin/parallel_rspec spec --serialize-stdout --combine-stderr

bin/parallel_rspec:

#!/usr/bin/env ruby
load File.expand_path("spring", __dir__)
require 'bundler/setup'
load Gem.bin_path('parallel_tests', 'parallel_rspec')

Environment:
parallel_test 4.2.1
Ruby 2.7.8(cimg/ruby:2.7.8-node)

The log (some warnings of my app omitted):

#!/bin/bash -eo pipefail
bin/parallel_rspec spec --serialize-stdout --combine-stderr
Running via Spring preloader in process 8254
Using recorded test runtime
8 processes for 1152 specs, ~ 144 specs per process
..
Running via Spring preloader in process 8311
.
Running via Spring preloader in process 8306
.

Finished in 4 minutes 36.4 seconds (files took 3.19 seconds to load)
2119 examples, 0 failures, 18 pending

.


Running via Spring preloader in process 8286

Finished in 5 minutes 9 seconds (files took 2.85 seconds to load)
2090 examples, 0 failures


Running via Spring preloader in process 8291

Finished in 5 minutes 9 seconds (files took 3.17 seconds to load)
1869 examples, 0 failures, 1 pending

.
Running via Spring preloader in process 8296

Finished in 5 minutes 39 seconds (files took 1.94 seconds to load)
1557 examples, 0 failures, 7 pending


Running via Spring preloader in process 8301

Finished in 6 minutes 39 seconds (files took 3.48 seconds to load)
2739 examples, 0 failures, 43 pending


10374 examples, 0 failures, 69 pendings

Took 405 seconds (6:45)
CircleCI received exit code 0

I use spring as preloader, but not sure if this affects.
I expect if one process died, exit whole test with exit code 1.

I thought once #wait_for_other_processes_to_finish suits above case, but this methods checks the number of processes.

def wait_for_other_processes_to_finish

I will appliciate if there is any idea to solve the problem.

@grosser
Copy link
Owner

grosser commented May 26, 2023

in general I'd recommend against spring, recent rails also removed it
if you can somehow reproduce this or ideally make a failing test that would help a lot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants