Skip to content

fix(model): properly error out when a temp file can't be created - #10883

Merged
calmh merged 1 commit into
syncthing:mainfrom
calmh:tmpfail
Sep 14, 2026
Merged

calmh merged 1 commit into
syncthing:mainfrom
calmh:tmpfail

Conversation

@calmh

@calmh calmh commented Sep 14, 2026

Copy link
Copy Markdown
Member

Such as when the base filename contains a character disallowed on the current filesystem...

Such as when the base filename contains a character disallowed on the
current filesystem...

Signed-off-by: Jakob Borg <[email protected]>
@github-actions github-actions Bot added the bug A problem with current functionality, as opposed to missing functionality (enhancement) label Sep 14, 2026
@calmh calmh added the maintainer-responsibility The maintainer takes responsibility for this PR being merged label Sep 14, 2026
@calmh
calmh merged commit bb19c01 into syncthing:main Sep 14, 2026
33 checks passed
@calmh
calmh deleted the tmpfail branch September 15, 2026 11:42
calmh added a commit to calmh/syncthing that referenced this pull request Sep 15, 2026
* main:
  fix(model): properly error out when a temp file can't be created (syncthing#10883)
  chore(gui, man, authors): update docs, translations, and contributors
Hancock33 added a commit to Hancock33/batocera.piboy that referenced this pull request Sep 16, 2026
--------------------------------------------------------------
armsx2.mk nightly-20260915 # Version: Commits on Sept 15, 2026
--------------------------------------------------------------
Automated nightly build for community testing (unsigned).
Every download is named `ARMSX2-nightly-DATE-COMMIT-PLATFORM`, so builds
from different nights stay distinguishable after you have downloaded them.
- macOS arm64: macOS-arm64.tar.xz
- Linux arm64: Linux-arm64-4K-pages.AppImage on most distros, or the 16K one on Asahi Linux and other Apple Silicon kernels (run getconf PAGESIZE if unsure)
- Windows arm64: Windows-arm64.zip
- RetroArch on Linux arm64: Linux-arm64-libretro-core.tar.zst, a 4K-page build
- Bare-display kmsdrm handhelds: Linux-arm64-SDL-handheld.tar.zst, a 4K-page build (Rocknix and Batocera run compositors, so use the Qt AppImage there instead)
- Android: Android-arm64.apk, sideload it
- iOS: iOS-arm64.ipa, unsigned, sideload it
## What's new
- iOS: install the Rust iOS target so CI builds keep shaders
- iOS: translate the new shader wording
- iOS: show the CRC in Per-Game Settings during a game
- iOS: move TV/CRT Shader to Filtering and rename the cache button
- iOS: show readable slider names and plain shader errors
- iOS: delete downloaded shader packs and saved presets
- iOS: close the preset list on a pick and select a saved preset
- iOS: say in the pause menu when a game has its own shader
- iOS: keep saved shader presets working after an app update
- iOS: put Preset first on the Shaders page and use plain wording
- iOS: pick a downloaded shader straight from the download list
- iOS: document launch links and the library export
- iOS: translate Copy Launch Link
- iOS: list games from external folders in the library export
- iOS: import files opened in the app again
- iOS: ask before a launch link replaces a running game
- iOS: copy a game's launch link from its long-press menu
- iOS: look up the app's own scene, not whichever one comes first
- iOS: stop leaking a scene configuration on every scene connect
- iOS: read the hack claim keys from s_gs_keys, where they live now
Full changelog: ARMSX2/ARMSX2@nightly-20260914...736f53f,

-------------------------------------------------------------------------------------------
duckstation.mk 63d72ac15647c854bbcc8bf38a669f574d309148 # Version: Commits on Sept 15, 2026
-------------------------------------------------------------------------------------------
GameDB: DisableUpscaledDirectTextures for Fear Effect,

---------------------------------------------------------------------------------------
flycast.mk 8933f9fe0ccd3f7cbe2e77717ea3a6db8b472129 # Version: Commits on Sept 12, 2026
---------------------------------------------------------------------------------------
libretro: link libandroid, or the dynarec dies on the first memory access
flycast's libretro build has never run on Android 11 or later. It loads,
reaches frame one, and then takes a SIGSEGV its own handler cannot place:
    [VMEM] Virtual memory file allocation failed: errno 13
    [VMEM] Warning! nvmem is DISABLED
    [COMMON] SIGSEGV @ 0x71d0c87618 invalid access to 0x71ce6cba00
errno 13 is EACCES. posix_vmem.cpp asks ASharedMemory_create first and
falls back to opening /dev/ashmem when the symbol is null -- and Android
11 took that device away from apps. So the fallback is refused, nvmem is
disabled, and the dynarec's fastmem accesses have no mapping behind
them. rewrite() cannot place the fault, and the handler falls through to
die(\segfault\).
The good path was there all along and was dead code, because the symbol
is declared weak:
    extern \C\ int __attribute__((weak)) ASharedMemory_create(const char*, size_t);
and nothing in the LIBRETRO branch links libandroid, so it resolved to
null every time. readelf on the built core shows only libm, libdl and
libc in NEEDED, and nm shows ASharedMemory_create as an undefined weak.
The app build links `android log` in its own ANDROID block further down;
the libretro build never did.,

--------------------------------------------------------------------------------------
hatari.mk 1343fd34dafead8136fe22e8daaf61900afb3fa9 # Version: Commits on Sept 15, 2026
--------------------------------------------------------------------------------------
For github macOS CI job : fix directory,

---------------------------------------------------------------------------------------
openmsx.mk 6a034497d4eac89c4a1b3821220bb901b30b5427 # Version: Commits on Sept 15, 2026
---------------------------------------------------------------------------------------
VDP: give each buffered CPU VRAM request its own write byte, and let an IN see a read that lands just after it
Since b121faa41 the V9938 registers a CPU VRAM request 29 cycles after the
port access and can accept a second request while the first has not had its
slot yet. In TEXT2 that is the normal case for the BIOS's INIR/OTIR scroll:
one byte every 138 cycles, while the slot table there has gaps of up to 100
cycles, so the first access can land 144 cycles after its port access. The
second request is correctly accepted, but its port access precedes the first
access by 2 to 6 cycles in emulated time, and two things went wrong there:
* Writes: 'cpuVramData' is shared, so the first write stored the second
  request's byte. MSX-DOS's DIR output read \COMMAN   COM\, \3 iiles\.
* Reads: the IN returned the latch before the read before it had executed,
  although the Z80 only samples the data bus about 15 cycles later. That
  duplicated the preceding byte: \716800\ became \ 16800\, \dir\ \dii\.
Traced on a Philips NMS 8250 during four DIRs: 47 second requests, 23 writes
and 24 reads, each with the first access still 4 cycles ahead; no request
was ever dropped.
Each in-flight request now carries its own write byte (cpuVramReqData,
secondCpuVramReqData), snapshotted when it is accepted; cpuVramData stays
the CPU-visible latch. vramRead() executes a pending read early when its
slot is within CPU_READ_SAMPLE_DELAY cycles of the IN: 9, from the 15 cycles
to the Z80's sample point minus about 6 for the DRAM read. That is an
estimate, not a measurement; this case needs 6.
Serialization version 12 -> 13. Two comments that said the second-request
path only occurs for a 'late' slot were wrong and are corrected.
Verified with twelve scrolling DIRs of MSX-DOS 1 in 80 columns on the
Philips NMS 8250 and Sony HB-F1XDJ, also with too_fast_vram_access=ignore,
and a savestate round trip.,

-------------------------------------------------------------------------------------
rpcs3.mk 0646d36708cee4ea33690a6b8c4ec5a94e634914 # Version: Commits on Sept 01, 2026
-------------------------------------------------------------------------------------
ps move tracker: only create threads on demand,

--------------------------------------------------------------------------------------
snes9x.mk d17fd0026f32c13bbc89620585be3586a8c62594 # Version: Commits on Sept 15, 2026
--------------------------------------------------------------------------------------
SuperFX: Name PlotOptionReg flags, fix 8-bit plotting testing incorrect flag for transparency rejection (#1100)
* Fix RPIX Clearing DREG Too Early
Fixes upstream #1055
* fxinst: name plot flags, fix plot_8bit testing wrong flag for transparency rejection.
Names sourced from BSNES.
8-bit plotting should check PLOT_FREEZEHIGH, not PLOT_OBJECT. Also fixed the logic hierarchy to be more natural.,

-------------------------------------------------------------------------------------
tic80.mk af4d6acbf9087f5ce39ea07683e11b0f895afc4b # Version: Commits on Sept 15, 2026
-------------------------------------------------------------------------------------
Release pipeline: tag-driven builds, itch.io, self-host /create (#2991),

------------------------------------------------------------------------------------------
rpi-eeprom.mk 97e023ff0961b28b132d08825e27108d18821681 # Version: Commits on Sept 14, 2026
------------------------------------------------------------------------------------------
rpi-eeprom-update: Track whether there is a pending firmware update
Bootloader updates don't take effect until the next watchdog or
cold boot. Store a file in /run to track whether the update is
still pending. This is useful for A/B updates and for suspend-to-ram
because resume would fail if the early bootcode loaded from SPI flash
into the L2-cache does not match the verison of firmware already in
SDRAM.,

---------------------------------------------------------------------------------------
stalker.mk b5180fc98035d5cc3cf5a059830dd1461e12b628 # Version: Commits on Sept 15, 2026
---------------------------------------------------------------------------------------
build(deps): bump Externals/sse2neon from `3b70b37` to `5abe115` (#2140)
Bumps [Externals/sse2neon](https://github.com/DLTcollab/sse2neon) from `3b70b37` to `5abe115`.
- [Release notes](https://github.com/DLTcollab/sse2neon/releases)
- [Commits](DLTcollab/sse2neon@3b70b37...5abe115)
---
updated-dependencies:
- dependency-name: Externals/sse2neon
  dependency-version: 5abe11523bf6110297812e2a8c1e7c67b8903379
  dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>,

-----------------------------------------------------------------------------------------
supertux2.mk 7221469f7ec2f74014fb46131405743d4389f4b9 # Version: Commits on Sept 15, 2026
-----------------------------------------------------------------------------------------
Fix SDL includes for opengles
Issue #3883,

------------------------------------------------------------
syncthing.mk v2.1.6-rc.1 # Version: Commits on Sept 15, 2026
------------------------------------------------------------
## Major changes in 2.1
- Devices and folders can now be grouped in the GUI by setting the new
  `group` attribute.
- HTTP and HTTPS proxies with support for CONNECT can now be used, in
  addition to the existing support for SOCKS proxies (the environment
  variable `all_proxy=https://...`).
- Block indexing can be turned off for folders where it's more desirable to
  optimise for reduced database size and overhead than minimal transfer
  size (the `blockIndexing` attribute on folder configuration).
- GUI login session duration can be configured to be longer or shorter than
  the default one week, or set to infinitely long. The cookie path can also
  be adjusted. (The `sessionCookieDurationS` and `sessionCookiePath`
  attributes in the GUI configuration.)
This release is also available as:
* APT repository: https://apt.syncthing.net/
* Docker image: `docker.io/syncthing/syncthing:2.1.6-rc.1` or `ghcr.io/syncthing/syncthing:2.1.6-rc.1`
  (`{docker,ghcr}.io/syncthing/syncthing:2` to follow just the major version)
## What's Changed
### Fixes
* fix(model): introducers should not be able to add themselves to folders by @calmh in syncthing/syncthing#10880
* fix(gui): add accessible labels to buttons in Edit Device modal (fixes #10873) by @tomasz1986 in syncthing/syncthing#10874
* fix(model): properly error out when a temp file can't be created by @calmh in syncthing/syncthing#10883
**Full Changelog**: syncthing/syncthing@v2.1.5...v2.1.6-rc.1,

-----------------------------------------------------------------------------------------
retroarch.mk d7d75f4000bb748f664465ef949ef261e3ed1698 # Version: Commits on Sept 15, 2026
-----------------------------------------------------------------------------------------
windows: the audit crosses the mingw build, and finds its blind spot full
The first run of tools/thread_read_audit.py against a Windows
binary - a mingw cross build, which host objdump reads natively -
found 52 worker entries and 27 findings where the Linux build shows
42 and zero. Twenty-five shared one reader: on Windows RARCH_LOG
routes through the desktop companion, and
ui_companion_driver_log_active read desktop_menu_enable through
config_get_ptr on whatever thread logged - every worker that logs a
line was a worker-thread singleton read, invisible on Linux where
logging never touches the companion.
desktop_menu_enable is now latched into the companion state as an
atomic, stored on the main thread at init_first and toggle - both
already receive the live value from their callers' settings read -
and the log sink, the message push and the refresh notification
read the latch with relaxed loads. Staleness across a toggle costs
at most one log line. The manual scan's completion notify moves
from the handler to the task callback, at retrieval on the main
thread, alongside the read it carried. The WASAPI pump captures its
two MMCSS bools into the driver at init and takes them as
parameters. And the mmdevice watcher thread, which raised exactly
one flag through audio_state_get_ptr, is handed a pointer to that
flag at spawn instead - its previously unused thread argument.
Windows: 52 entries, 0 findings. Linux: 42 entries, 0 findings,
unchanged budgets, the 74-lane matrix, C89 on the shared files and
the database suite all pass. The 33-entry --list-unaudited blind
spot is now ten entries smaller in the one build that can see
them.,

-----------------------------------------------------------------------------------------
doomretro.mk a9844689a76d23ac855407087d7d675863039ab8 # Version: Commits on Sept 15, 2026
-----------------------------------------------------------------------------------------
Fix for red weapons in carousel, stay on screen for slightly longer,

-----------------------------------------------------------------------
libretro-armsx2.mk nightly-20260915 # Version: Commits on Sept 15, 2026
-----------------------------------------------------------------------
Automated nightly build for community testing (unsigned).
Every download is named `ARMSX2-nightly-DATE-COMMIT-PLATFORM`, so builds
from different nights stay distinguishable after you have downloaded them.
- macOS arm64: macOS-arm64.tar.xz
- Linux arm64: Linux-arm64-4K-pages.AppImage on most distros, or the 16K one on Asahi Linux and other Apple Silicon kernels (run getconf PAGESIZE if unsure)
- Windows arm64: Windows-arm64.zip
- RetroArch on Linux arm64: Linux-arm64-libretro-core.tar.zst, a 4K-page build
- Bare-display kmsdrm handhelds: Linux-arm64-SDL-handheld.tar.zst, a 4K-page build (Rocknix and Batocera run compositors, so use the Qt AppImage there instead)
- Android: Android-arm64.apk, sideload it
- iOS: iOS-arm64.ipa, unsigned, sideload it
## What's new
- iOS: install the Rust iOS target so CI builds keep shaders
- iOS: translate the new shader wording
- iOS: show the CRC in Per-Game Settings during a game
- iOS: move TV/CRT Shader to Filtering and rename the cache button
- iOS: show readable slider names and plain shader errors
- iOS: delete downloaded shader packs and saved presets
- iOS: close the preset list on a pick and select a saved preset
- iOS: say in the pause menu when a game has its own shader
- iOS: keep saved shader presets working after an app update
- iOS: put Preset first on the Shaders page and use plain wording
- iOS: pick a downloaded shader straight from the download list
- iOS: document launch links and the library export
- iOS: translate Copy Launch Link
- iOS: list games from external folders in the library export
- iOS: import files opened in the app again
- iOS: ask before a launch link replaces a running game
- iOS: copy a game's launch link from its long-press menu
- iOS: look up the app's own scene, not whichever one comes first
- iOS: stop leaking a scene configuration on every scene connect
- iOS: read the hack claim keys from s_gs_keys, where they live now
Full changelog: ARMSX2/ARMSX2@nightly-20260914...736f53f,

------------------------------------------------------------------------------------------------
libretro-flycast.mk 8933f9fe0ccd3f7cbe2e77717ea3a6db8b472129 # Version: Commits on Sept 12, 2026
------------------------------------------------------------------------------------------------
libretro: link libandroid, or the dynarec dies on the first memory access
flycast's libretro build has never run on Android 11 or later. It loads,
reaches frame one, and then takes a SIGSEGV its own handler cannot place:
    [VMEM] Virtual memory file allocation failed: errno 13
    [VMEM] Warning! nvmem is DISABLED
    [COMMON] SIGSEGV @ 0x71d0c87618 invalid access to 0x71ce6cba00
errno 13 is EACCES. posix_vmem.cpp asks ASharedMemory_create first and
falls back to opening /dev/ashmem when the symbol is null -- and Android
11 took that device away from apps. So the fallback is refused, nvmem is
disabled, and the dynarec's fastmem accesses have no mapping behind
them. rewrite() cannot place the fault, and the handler falls through to
die(\segfault\).
The good path was there all along and was dead code, because the symbol
is declared weak:
    extern \C\ int __attribute__((weak)) ASharedMemory_create(const char*, size_t);
and nothing in the LIBRETRO branch links libandroid, so it resolved to
null every time. readelf on the built core shows only libm, libdl and
libc in NEEDED, and nm shows ASharedMemory_create as an undefined weak.
The app build links `android log` in its own ANDROID block further down;
the libretro build never did.,

------------------------------------------------------------------------------------------------
libretro-hatarib.mk a762a31c6dd63e2593cc4d085d4185e1ec18dcd2 # Version: Commits on Sept 15, 2026
------------------------------------------------------------------------------------------------
1.0 release,

------------------------------------------------------------------------------------------------------
libretro-mame2003-plus.mk e059bb0fe83f5552cd7600041e44f9492126f523 # Version: Commits on Sept 15, 2026
------------------------------------------------------------------------------------------------------
Add files via upload (#2037),

----------------------------------------------------------------------------------------------
libretro-tic80.mk af4d6acbf9087f5ce39ea07683e11b0f895afc4b # Version: Commits on Sept 15, 2026
----------------------------------------------------------------------------------------------
Release pipeline: tag-driven builds, itch.io, self-host /create (#2991),
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug A problem with current functionality, as opposed to missing functionality (enhancement) maintainer-responsibility The maintainer takes responsibility for this PR being merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant