Comments (3)
Hi again @Manfred,
We've looked into the issue as previously updated. To come back to your original issues:
- AppSignal should never crash my application
- Indeed. We're doing our best to make sure it doesn't crash. Sometimes it does but we aim to fix that ASAP when it happens.
- When used in Rails, AppSignal should not log outside of the Rails root unless explicitly instructed to do so
- The team has discussed this and we don't necessarily agree. We'll fall back on the system
/tmp
dir when the Rails project directory is not writable. But if that's not writable either we will log to STDOUT if possible. The Rust agent however, can't do that and will most likely fail to start. This is a permission issue we're aware of.
- The team has discussed this and we don't necessarily agree. We'll fall back on the system
- When creating temporary log files AppSignal should probably rely on Tempfile, which does the correct (and more secure) thing for each operating system
- We can't use the Ruby Tempfile class as we can't expect the Rust agent to reliably write to it. It's removed from the file system once the parent Ruby process exits. This makes it unreliable for us to write to between deploys and restarts of an application.
We're going to close this issue. Let me know if you have any other feedback regarding this issue. You can track our progress on supporting more methods of logging in #184
from appsignal-ruby.
This is indeed a pretty serious bug. Assumption number 1 is one of the most important things we try to live up to. I think assumption 2 and 3 make a lot of sense. We'll see if we can make that happen.
We'll work on a fix for this and will get back to you.
from appsignal-ruby.
I've added better checks in #158 and #160 for point 1.
We will log to STDOUT if no viable log path is found.
Nothing for point 2 yet, we still fallback on /tmp/appsignal.log
if the project path is not writable.
We can't really fallback on Tempfiles in Ruby as we log to the same logfile in our rust agent as well. We'll have to log to somewhere, anywhere, else if there's no viable log path on the system since the agent's STDOUT doesn't output in the Ruby process.
from appsignal-ruby.
Related Issues (20)
- Fix Sidekiq 7.1 error handler deprecation HOT 1
- Add support for SolidCache HOT 2
- Add support for Solid Queue HOT 8
- Sidekiq minutely probe reports error
- Support nested exceptions HOT 12
- Allow to build custom_data sample data HOT 2
- Use thread-local variables instead of fiber-local variables to store global configuration HOT 1
- Extension fails to load under Alpine Linux 3.19 HOT 1
- Diagnose report fails to send `mkmf.log`
- Appsignal logger causes sidekiq to crash HOT 2
- Log not being rotated HOT 5
- Rename internal logger
- The request header REQUEST_URI contains PII or secrets that should be stripped via filter_parameters HOT 4
- Typo in Changelog HOT 1
- Report activejob errors only when the job is discarded HOT 2
- Rails.error.report is missing information compared to Appsignal.set_error HOT 9
- Cron heartbeats support HOT 3
- AppSignal Agent crashes and stops logging: No longer owner of lock file '/tmp/appsignal/agent.lock', agent exiting HOT 2
- Integrate with the `autotuner` Gem HOT 1
- 3.7.3 LocalJumpError during asset precompilation HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from appsignal-ruby.