Bump timeout slightly
We use 60 second timeouts in various other places and an extra
30 seconds to catch a wedged client isn't onerous.
(cherry picked from commit f4ed4c8ff1eb0a58d8eb144cef55d1e2e9d2687c)
webshell: fix sessions hanging with a blank terminal
login(1) hangs up and reopens its tty at session start, so reads on
the pty master transiently fail with EIO. The reader thread treated
any read error as fatal and exited silently: the UI showed
"connected" but the terminal stayed blank while the shell kept
running with nobody forwarding its output. Treat EIO as fatal only
when the shell child is gone (50ms retry, 5s cap).
Also harden the worker teardown:
- abort() closed master_fd while the reader/writer threads still
used the fd number; it now only signals and kills the child, and
run() reaps, joins, then closes under try/finally.
- terminate_pid(use_pgid=True) before the child's setsid() resolved
to middlewared's own process group and could kill the daemon;
signal the pid directly when the group is the caller's own.
- Bound every teardown wait: WNOHANG reap (D-state child), 30s
websocket send (stalled client). Catch BaseException so thread
[4 lines not shown]
Bump timeout slightly
We use 60 second timeouts in various other places and an extra
30 seconds to catch a wedged client isn't onerous.
(cherry picked from commit f4ed4c8ff1eb0a58d8eb144cef55d1e2e9d2687c)
webshell: fix sessions hanging with a blank terminal
login(1) hangs up and reopens its tty at session start, so reads on
the pty master transiently fail with EIO. The reader thread treated
any read error as fatal and exited silently: the UI showed
"connected" but the terminal stayed blank while the shell kept
running with nobody forwarding its output. Treat EIO as fatal only
when the shell child is gone (50ms retry, 5s cap).
Also harden the worker teardown:
- abort() closed master_fd while the reader/writer threads still
used the fd number; it now only signals and kills the child, and
run() reaps, joins, then closes under try/finally.
- terminate_pid(use_pgid=True) before the child's setsid() resolved
to middlewared's own process group and could kill the daemon;
signal the pid directly when the group is the caller's own.
- Bound every teardown wait: WNOHANG reap (D-state child), 30s
websocket send (stalled client). Catch BaseException so thread
[4 lines not shown]
NAS-141874 / 27.0.0-BETA.1 / webshell: fix sessions hanging with a blank terminal (#19382)
login(1) hangs up and reopens its tty at session start, so reads on
the pty master transiently fail with EIO. The reader thread treated
any read error as fatal and exited silently: the UI showed
"connected" but the terminal stayed blank while the shell kept
running with nobody forwarding its output. Treat EIO as fatal only
when the shell child is gone (50ms retry, 5s cap).
Also harden the worker teardown:
- abort() closed master_fd while the reader/writer threads still
used the fd number; it now only signals and kills the child, and
run() reaps, joins, then closes under try/finally.
- terminate_pid(use_pgid=True) before the child's setsid() resolved
to middlewared's own process group and could kill the daemon;
signal the pid directly when the group is the caller's own.
- Bound every teardown wait: WNOHANG reap (D-state child), 600s
websocket send (stalled client). Catch BaseException so thread
death is never silent; clear shell_pid once reaped.
- Add a host shell I/O regression test.
[lldb-dap] Migrate DAP attach tests. (#210814)
Address some issues with the previous tests.
- Always wait for the continued event after sending a continue request.
since the continue response is just an acknowlegement that we send a
continue packet.
- Retry reading stdin if it has an error when the debugger attaches.
- Update and enable the attachByPortNum test, this may now run on NetBSD
and Windows. will try to enable in a different PR.
[TLI] Add x86 libmvec mappings for GLIBC 2.35 vector functions (#206274)
## Summary
glibc 2.35 extended x86_64 libmvec with vector implementations of `erf`,
`erfc`,
`cbrt`, `expm1`, `log1p`, `asinh`, `acosh` and `atanh` (among others),
but LLVM's
`LIBMVEC_X86` table in `VecFuncs.def` was never updated past the
original glibc-2.22
set. As a result `clang -fveclib=libmvec` cannot vectorize loops over
these functions
on x86_64, even though the vector symbols are present in the linked
`libmvec.so`. The
AArch64 libmvec table already maps several of them.
This patch adds the x86 mappings for the 8 GLIBC-2.35 functions that
have **no
corresponding LLVM intrinsic** (pure named/TLI mappings). The
[48 lines not shown]
[llubi][NFC] Use context-aware value printer (#211275)
As discussed in
https://github.com/llvm/llvm-project/pull/200672#discussion_r3624927046,
we need information from the global state to provide a better debugging
representation of byte SSA values.
This patch adds a wrapper to pass `Context&` into the actual printer.
NAS-141891 / 27.0.0-BETA.1 / Account and group integration tests (#19370)
84% of `account.py` is now covered with integration tests (some of the
DS tests might cover the rest)
[Clang][X86] Introduce Clang ABI Gate for MSVC alignment (#210305)
On x86_64-windows-msvc after 8ecec455183f, clang applies the MSVC
size-based global-alignment scheme (Microsoft64BitMinGlobalAlign) and
does not apply the Sys V "large array" alignment increase. Users may
want to preserve the earlier ABI for compatibility with objects produced
by older clang releases.
Gate this behavior on the Clang ABI compatibility level. When
`-fclang-abi-compat=22` (or lower) is in effect,
MicrosoftX86_64TargetInfo restores LargeArrayMinWidth/LargeArrayAlign to
128 and getMinGlobalAlign skips the Microsoft64BitMinGlobalAlign step,
matching the older alignment choices.
Assisted by Claude (Anthropic).
py-mistune: updated to 3.3.4
3.3.4
* Harden inline parsing against deeply nested and adversarial link, image,
emphasis, formatting, math, and reference inputs.
* Improve performance for repeated link suffixes, dense emphasis, unclosed
formatting markers, inline spoilers, and adjacent ruby tokens.
* Refactor the inline parser into dedicated emphasis and link modules.
* Escape literal ``*``/``_`` emphasis markers in the Markdown renderer so
round-tripping escaped text does not re-introduce emphasis.
[SPIRV] Lower llvm.ldexp via OpenCL/GLSL ldexp ext-inst (#195402)
## Summary
The SPIR-V backend handled only `G_STRICT_FLDEXP` (from
`llvm.experimental.constrained.ldexp`). Plain `Intrinsic::ldexp` lowers
to `G_FLDEXP` in `IRTranslator.cpp`, so device code that calls `ldexp()`
(or any libcall lowered to `llvm.ldexp.*`, including `scalbn`,
`scalbln`, integer-exponent `exp2`) failed legalization with `unable to
legalize instruction: G_FLDEXP`.
## Change
- `SPIRVLegalizerInfo.cpp`: extend the existing legalizer rule from
`{G_STRICT_FLDEXP}` to `{G_FLDEXP, G_STRICT_FLDEXP}`, sharing the same
`(allFloatScalarsAndVectors, allIntScalars)` cartesian product.
- `SPIRVInstructionSelector.cpp`: add a `case TargetOpcode::G_FLDEXP:`
next to the strict case, both selecting `selectExtInst(..., CL::ldexp,
GL::Ldexp)`. The `GL::Ldexp` opcode (53) was already declared in
[10 lines not shown]
py-discogs-client: updated to 2.9
2.9
Improved / Changed
Bump ubuntu version in build workflow
New
A new configuration option trust_per_page allows controlling how pagination is handled
Update threadingbuildingblocks (oneTBB) to 2023.1.0
- XXX cargo culted flag removal
- colloidal suspension simulation runs a tad faster
Highlights:
- Significantly improved scalability for concurrent ordered containers
on systems with many threads. This change results in greater than
3x performance for some use cases.
- Fixed ``concurrent_queue`` and ``concurrent_bounded_queue``
capacity preserving on copying, moving, and swapping
(https://github.com/uxlfoundation/oneTBB/issues/1598).
- Fixed issues with Flow Graph priorities when using limited
concurrency nodes (https://github.com/uxlfoundation/oneTBB/issues/1595).
[15 lines not shown]
[Polly] Fix memory leak in DependenceAnalysis::Result::abandonDepende… (#211514)
abandonDependences() uses unique_ptr::release() which releases
ownership without freeing the Dependences object, causing a memory
leak. Use unique_ptr::reset() instead to properly delete the object
before nullifying the pointer.
The issue was found when AddressSanitizer is enabled in the build.