I am debugging a problem where I experience unicorn not picking up code changes on deploys when I use the master re-spawn procedure for upgrading. I need a way to ask unicorn/my rails app which code revision is currently in memory - but I'm unsure how I would do that?
How do I know which git revision unicorn/rails has currently loaded into memory?
47 Views Asked by Niels Kristian At
1
There are 1 best solutions below
Related Questions in RUBY-ON-RAILS
- How to display legend box in tooltip text for amCharts 5 in Rails application?
- how to integrate cashfree payment gateway in ruby on rails project
- RSpec Capybara throwing Selenium error when trying to click a button with browser confirm
- rails minitest not picking up fixture properly, instance variable not percolating
- Duplicate GET requests - Rails & Heroku
- How to stub out current_user in JWT model for Rspec?
- NameError in Home#index
- Verifying Google Identity OAuth2 token with Ruby
- Error WebMock::NetConnectNotAllowedError in testing with stub using minitest in rails (using Faraday)
- why is mission_control-jobs erroring with load path error?
- Rescuing validation errors from a polymorphic association
- New error on random number assigned to local variable , Rails
- How to fix error in model with gem lockbox
- Images uploaded via Active Storage not displaying in Active Admin or on certain devices
- controller test_methods generating two errors intermittently
Related Questions in RUBY
- how to integrate cashfree payment gateway in ruby on rails project
- RSpec Capybara throwing Selenium error when trying to click a button with browser confirm
- Duplicate GET requests - Rails & Heroku
- convert csv file with json data inside to a column, rows table in 2nd csv file
- Installing dependencies from a gemspec file
- Verifying Google Identity OAuth2 token with Ruby
- Java code of AES/GCM/NoPadding encryption algorithm with authentication tag
- How to fix error in model with gem lockbox
- Cannot install Ruby Gem on Window
- use logstash filter ,aes gcm encrypted in ruby,but cannot decrypted in java
- In Rails 7, what is the right ActiveRecord callback to use if I need to prevent (or rollback) persistance on error?
- How can I go through an array and still remove elements from it
- Nokogiri only returning 5 results
- How do I get the fullscreen mode in firefox?
- undefined group option when using branch reset group regex in Ruby
Related Questions in UNICORN
- How to finetune the fast api using Uvicorn server
- running two rails apps on one server using unicorn, nginx. Only one app is showing for different server names
- better rails development server
- Unicorn + Rails 7.1: TypeError: wrong argument type strio (expected strio) (TypeError)
- Fuzzing using Qemu or Unicorn
- How to test unicorn.rb
- How do I know which git revision unicorn/rails has currently loaded into memory?
- unicorn engine exception on mapped memory
- Does Unicorn app server workers goes up and down all the time? or they are long lived? how do they retrieve the request from master?
- Unable to install pwn package for python
- Load Python Dependencies With Conflicting Sub-dependencies
- Problem Loading Ruby Rails Unicorn in ECS Fargate When Building Image in CircleCI (Works Locally)
- How to use ruby-debug-ide with unicorn_rails?
- how to disable rails/unicorn default requests log
- How to ensure unicorn disconnects ALL DB connections in rails 6.1?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
It depends on how you deploy your application. When you deploy does it get deployed with the
.gitdirectory in place and intact? That's not a recommended practice. (because if your server is compromised you don't want potentially sensitive or private information stored on that server, like what might be found in git data) And are git binaries installed on the system? Which again is not a recommended practice because deployed apps shouldn't have applications on them that attackers can leverage to pull down their own malicious code.If both are present then you can use https://github.com/ruby-git/ruby-git, or more simply https://github.com/NARKOZ/git-revision, and then surface that somewhere in your application. (like a health check endpoint, or in headers) This would all be custom code that you have to write that is dependent on your application.
A better practice would be to inject a static value into your application when it is deployed. Your CI/CD pipeline would clone the repo, get the current revision, then store this in your application in a static file before it ships it, and then the app would serve up this file on demand. (or load it into memory on boot) This has the added benefit of not bloating your application with more gems and binaries that are not technically required and increase your attack surface.