We found that when used in a Sidekiq production environment, shiphawk requests would spawn new threads each time which was executed by this line of code:
|
IO.popen(['which', 'git']).read.chomp.length > 0 |
The following output from top gave us the clue that helped find the source of the problem within the shiphawk gem:

This resulted in the Sidekiq worker eventually hitting the thread limit and hanging indefinitely.
Adding the APP_VERSION variable to our environment with an arbitrary value bypassed the offending code and resolved the issue for us in our production environment.
I would be happy to work on a patch for this issue so that the shiphawk gem will be safe to use in environments that do not have APP_VERSION variable declared.
We found that when used in a Sidekiq production environment, shiphawk requests would spawn new threads each time
whichwas executed by this line of code:shiphawk-ruby/lib/shiphawk/helpers/request.rb
Line 39 in b6c1b89
The following output from
topgave us the clue that helped find the source of the problem within the shiphawk gem:This resulted in the Sidekiq worker eventually hitting the thread limit and hanging indefinitely.
Adding the
APP_VERSIONvariable to our environment with an arbitrary value bypassed the offending code and resolved the issue for us in our production environment.I would be happy to work on a patch for this issue so that the shiphawk gem will be safe to use in environments that do not have
APP_VERSIONvariable declared.