MISC¶
-
/etc/ld.so.preload
: GLIBC usesaccess()
to check if this file exist (normally it does not exist)1. This is something related toLD_PRELOAD
: If bothLD_PRELOAD
and/etc/ld.so.preload
are employed, the libraries specified byLD_PRELOAD
are preloaded first. /etc/ld.so.preload
has 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.
-
mmap
PROT_NONE
is really used by applications, or library. They have their special usage.