Comments (11)
My suggestion would be to not raise in these cases, but return a dummy hash, something like:
{ file: nil, line: nil, function: stackframe }
from airbrake-ruby.
Hey there @martinvium!
Thanks for the report. I think we should try to parse it since it contains line numbers useful for grouping and the format seems to be well-defined. When the library raises, it prints what it can't parse, so it helps adding support for new backtrace formats.
from airbrake-ruby.
Completely up to you if you want to support Oracle directly, that would be great. Even then, i think there should be a reasonable fallback, since you might not know what other types of formats might exist out there and it's really hard to debug (until you know what the problem is).
from airbrake-ruby.
True, but if we don't raise, how would we know we don't support something? :)
from airbrake-ruby.
You could flag it in the notice? raw_backtrace: true
from airbrake-ruby.
Really it was painful to debug, and took me a while to realize it was a general problem and not just a special case, then figure out that it was not a problem with either of the Oracle gems, then on the various other middleware. Finally Google told me about above PR, which i eventually realized was triggering the behaviour (in between lots of trial and error to see what the "true" output was of manually triggering the stored procedure).
from airbrake-ruby.
I'd like to clarify: was it hard to find the root of the error because of the confusing error message or because of the nature of stored procedures (that is, you didn't have access or couldn't see the error in the first place)?
from airbrake-ruby.
It was hard to debug the original problem, because Airbrake only showed the last (and really not relevant) line of the error:
from stmt.c:243:in oci8lib_220.bundle
Hiding all the interesting stuff:
OCIError: ORA-02291: integrity constraint (STORE.SN_PACE_REGISTRATIONS_FK01) violated - parent key not found
ORA-06512: at "STORE.LI_LICENSES_PACK", line 1945
ORA-06512: at "ACTIVATION.LI_ACT_LICENSES_PACK", line 101
ORA-06512: at line 2
It was also hard to figure out that Airbrake was at "fault", and that i needed to downgrade to fix it.
from airbrake-ruby.
Also the entire backtrace was obfuscated, because this is an "error" in Airbrake, i don't see the original stacktrace e.g. which controller was triggering it, only the Airbrake middleware backtrace.
from airbrake-ruby.
Thanks for the bug report again and your feedback! Now the library won't crash on unsupported stack frames and log them instead.
from airbrake-ruby.
Thank you very much for the quick response and fix! Much appreciated, will give it a spin next week.
from airbrake-ruby.
Related Issues (20)
- rbtree collides with rmagick on aws linux HOT 8
- PerformanceNotifier outputting many logs when it should be disabled HOT 9
- Clarify the impact of disabling the `remote_config` feature HOT 3
- Is Airbrake.merge_context thread safe? HOT 1
- Its possible to log the output of all promises? HOT 5
- Enable proxy when fetching remote config
- Manual test code fails to generate airbrake ; program terminates too quickly HOT 2
- airbrake issues with lack of detail HOT 1
- Remote configuration is polled for despite `ignore_environments` HOT 1
- Errno::EAGAIN: Resource temporarily unavailable with falcon HOT 12
- Performance monitoring scope/features HOT 2
- ArgumentError: invalid byte sequence in UTF-8 when reporting HOT 5
- Airbrake logging an unexpected 500 response from Airbrake API HOT 14
- Exceptions with nil for message cause error in v6.1.1 HOT 5
- sanitize_hash in KeysFilter may leak sensitive blocklisted params HOT 3
- Set error_host and apm_host to host by default HOT 3
- HTTP error: can't move from the enclosed thread group HOT 11
- 6.2.1-java missing on rubygems.org HOT 3
- Filter user object
- Error notifications are disabled (missing doc?) HOT 1
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 airbrake-ruby.