Clean up startup logging and streamline log audits (#40526)
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# Startup noise-source hints
|
||||
|
||||
Read this only for an observed signature that needs investigation. Paths and
|
||||
behaviors can change; search the current checkout and installed dependency before
|
||||
proposing a fix. The accepted-output policy in `../SKILL.md` takes precedence.
|
||||
These are investigation hints, not a list of changes to apply.
|
||||
|
||||
## Common signatures
|
||||
|
||||
| Observed output | Where to investigate | Decision to verify |
|
||||
|---|---|---|
|
||||
| HF warning printed in two formats | `utils/common.py`, HF logger handlers and propagation | A library handler plus root propagation can emit the same record twice. Keep one timestamped copy, including before full server logging setup. |
|
||||
| `Skipping import of cpp extensions due to incompatible torch version` | `torchao/__init__.py`; imports through `hf_transformers_patches.py` and transformers quantizers | Determine whether torchao is needed for the requested model before proposing narrow import-time suppression. |
|
||||
| `torch_dtype` is deprecated | Model code, loader, and HF utilities accessing `config.torch_dtype` | Prefer `config.dtype` where supported; change and verify only affected, tested models. |
|
||||
| `BaseImageProcessorFast` is deprecated | Multimodal processor imports and type checks | Check the installed transformers replacement and compatible `isinstance` behavior. |
|
||||
| `No platform detected. Using base SRTPlatform with defaults.` | Platform detection | Decide whether fallback is expected on this machine or indicates a missing plugin. |
|
||||
| `Unexpected error during package walk` in CUTE_DSL | Installed cutlass package, its handler, root propagation, and `CUTE_DSL_LOG_LEVEL` | Inspect the actual exception and duplicate-handler path; do not assume the current log level or hide all warnings. |
|
||||
| Repeated dtype, hybrid-model, or tokenizer fallback messages | Model-config and tokenizer construction in launcher, scheduler, and detokenizer | Multiple constructors may explain repetition. Retain meaningful per-process information and distinguish these from handler duplication. |
|
||||
| Repeated template detection messages | `managers/template_detection.py` and `managers/template_manager.py` | Check whether a summary already contains the same information. |
|
||||
| KV cache dtype logged separately from allocation | Model runner and memory pool | Check whether the allocation summary already carries dtype; retain useful allocation and SWA details. |
|
||||
| CUTLASS backend disabled during graph capture | Attention backend selection | Expected fallback may be useful information; retain the reason and selected behavior. |
|
||||
| `Ignore import error when loading ...` | Model, multimodal, or algorithm registries | Distinguish an unused optional model dependency from failure to load the requested model. |
|
||||
| `Multiple NUMA nodes found for GPU ...` | `utils/numa_utils.py` | This differs from the accepted NUMA permission warning; evaluate its context separately. |
|
||||
| `OpenAI Responses API (/v1/responses) disabled` | `entrypoints/http_server.py`, serving responses, and Harmony vocabulary loading | A real endpoint limitation should remain visible even if generation warmup succeeds. |
|
||||
| `SyntaxWarning: invalid escape sequence` from a dependency | Installed package file named by the warning | Identify the upstream issue; avoid editing the installed package as a repository fix. |
|
||||
|
||||
Repeated constructors and separate processes are not blanket reasons to downgrade
|
||||
messages. Constructor counts and import paths vary by model and checkout. Likewise,
|
||||
cache-summary ordering and native library formats need no change merely because
|
||||
they differ from a historical reference log.
|
||||
|
||||
## Targeted tracing
|
||||
|
||||
Start with source searches. For example:
|
||||
|
||||
```bash
|
||||
rg -n 'SEARCH_STRING' python/sglang/srt/FOCUSED_DIRECTORY
|
||||
rg -n '\.torch_dtype' python/sglang/srt/models/MODEL.py
|
||||
```
|
||||
|
||||
If the emitter is clear but its call path is not, attach a temporary handler in an
|
||||
isolated reproduction:
|
||||
|
||||
```python
|
||||
import logging
|
||||
import traceback
|
||||
|
||||
|
||||
class TraceHandler(logging.Handler):
|
||||
def emit(self, record):
|
||||
if "SEARCH_STRING" in record.getMessage():
|
||||
traceback.print_stack()
|
||||
|
||||
|
||||
target = logging.getLogger("TARGET_LOGGER_NAME")
|
||||
handler = TraceHandler()
|
||||
target.addHandler(handler)
|
||||
try:
|
||||
reproduce_observed_warning()
|
||||
finally:
|
||||
target.removeHandler(handler)
|
||||
```
|
||||
|
||||
For suspected native output, search only the identified shared library:
|
||||
|
||||
```bash
|
||||
strings /path/to/library.so | rg -F 'SEARCH_STRING'
|
||||
```
|
||||
|
||||
Keep diagnostic instrumentation out of committed fixes and baseline logs.
|
||||
Reference in New Issue
Block a user