/etc/ld.so.preload: GLIBC uses
access()to check if this file exist (normally it does not exist)1. This is something related to
LD_PRELOAD: If both
/etc/ld.so.preloadare employed, the libraries specified by
LD_PRELOADare preloaded first. /
etc/ld.so.preloadhas a system-wide effect, causing the specified libraries to be preloaded for all programs that are executed on the system2.
I was reading a FAST18 paper (Fail-Slow Datacenter). I found it quite interesting and some suggestions are very useful for all system designers. Especially:
- Make implicit error-masking explicit. DO NOT FAIL SILENTLY. Since this is not a fail-stop (binary) issue, normally system designers will not raise exceptions. System designers should be aware of uncommon situations, raise explicit exceptions to convert a fail-slow (non-binary) case to a fail-stop (binary) case .Actually, this also reminds the email by Linus Torvards on BUG_ON usage3.
- Exposing performance statistic information for all-level (device, firmware, system software, application). However, based on my own experience, do not generate too much useless logs, it will just help to hide the root cause.
Testing of applications is often done on a testing environment, smaller in size (perhaps only a single server) and less loaded than the “live” environment. The replication behavior of such an installation may differ from a live environment in ways that mean that replication lag is unlikely to be observed in testing - masking replication-sensitive bugs.
PROT_NONEis really used by applications, or library. They have their special usage.