Comments (5)
You're right that a library that panics is a little unusual. It was a deliberate choice on my part as a way to encourage bug reports. I don't know if it was the right choice, though. It has proven useful, at the expense of annoying users. Now that I think about it some more, maybe I could introduce a feature that would suppress panics (and turn them into Result::Err(..)
instead).
from procfs.
Thanks for the feedback. I've opened a new issue to discuss the general topic of removing as many panics as possible.
I also realized that I've failed to address the original issue brought up by @edigaryev -- I'll plan on doing that work this week.
from procfs.
Thanks for the report. What would you recommend here? I suppose these fields could be converted from String
to Vec<u8>
, but I'm hesitant to stop using the String
type, since it's very convenient. Would using String::from_utf8_lossy()
be acceptable for your use-case?
from procfs.
Would using
String::from_utf8_lossy()
be acceptable for your use-case?
That'd work for me. At least it won't panic, which is kinda surprising when using a library, but I guess this way more bugs can be unveiled because people will actually report their panic()
's.
from procfs.
@eminence I use your library in a project, and I'm also concerned about it panicking in production (not so much annoy but a production deal-breaker).
Maybe having an error type for unexpected data/format (with backtrace) - which your users can report - will be a good middle ground?
I will gladly help turn the package panic free if you decide to go for it.
from procfs.
Related Issues (20)
- Possible vulnerability HOT 1
- Fails to build on FreeBSD HOT 2
- Expose `/proc/<pid>/maps` parsing (and others) HOT 4
- PID should be u32 HOT 2
- Confusing documentation for Stat::comm HOT 3
- Support (limited) use on other platforms HOT 12
- MountInfo does not unescape special characters
- Process uid() fails on some kernels HOT 2
- error[E0599]: no associated item named `PATH` found for struct `OFlags` in the current scope
- Please publish `procfs-core` HOT 2
- No way to match `KernelStats::cpu_time` entries to CPUs when CPUs are hot [un]plugged
- Make CpuInfo iterable HOT 2
- Add support for parsing /proc/mdstat
- KernelVersion::current reads /proc/sys/kernel/osrelease, patch version is incorrect in ubuntu HOT 3
- Consider leaving meminfo values as kilobytes/kibibytes HOT 3
- [Bug] `FDsIter` memory leak HOT 8
- Improve our examples
- Add support for parsing /proc/net/netstat
- Add support for `/proc/net/nf_conntrack`
- panic in `Snmp::from_buf_read` due to missing IcmpMsg line
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 procfs.