unix
8 minpipefail, Signals, and Unix Process Management
Unix is full of tiny control primitives. Learn how `set -o pipefail`, process signals, and clean lifecycle management keep shell pipelines reliable and debuggable.
Loading page...
unix
8 minUnix is full of tiny control primitives. Learn how `set -o pipefail`, process signals, and clean lifecycle management keep shell pipelines reliable and debuggable.
Q&A
Q&ACompare post-GC live-set size and object retention paths over time.
High allocation can cause frequent collections while post-GC occupancy remains broadly stable. A leak tends to retain objects that should have become unreachable, so compare heap dumps and dominator paths across time. Check allocation rate, live set, GC logs, and process/container memory together before changing heap settings.
java
8 minTrace plugin and application class loaders from long-lived roots before blaming metaspace.
Q&A
Q&AResolve the name from the failing runtime, then test the returned address and port separately.
Use the system resolver path, for example getent hosts, and compare with a direct DNS query. If a correct address resolves but the connection fails, investigate route, listener, firewall, or protocol behavior. Run diagnostics inside the same container or namespace as the application because resolver configuration may differ.
Q&A
Q&ATCP establishes an ordered byte stream; UDP sends datagrams without delivery acknowledgement from the transport.
TCP connection establishment and retransmission make a port-connectivity test meaningful, but application message boundaries still need framing. UDP has no handshake, so silence may mean a dropped packet, invalid request, or a service that does not answer probes. Test using a valid protocol request and inspect both ends when possible.
java
11 minSeparate heap pressure from thread-stack failure, collect the right evidence, and fix the retention path rather than masking symptoms.
Q&A
Q&AA live root still reaches an object, class, or thread state owned by the old loader.
Look for parent-owned registries, executor queues, thread locals, context class loaders, and callbacks. An unreachable cycle can be collected; a path from a long-lived root cannot.
distributed systems
18 minDesign around Kafka group churn, payment idempotency, coordination limits, sagas, CQRS, and context propagation across async boundaries.