ed8a225106
Deploy / deploy (push) Successful in 6m5s
Blender renders failed with "produced no output for 600s" on every attempt while rendering perfectly well. Two causes, both mine. BeginOutputReadLine raises an event per newline, and Blender writes its render status with a carriage return so it overwrites one line in place — a frame taking longer than the stall timeout emits no newline for its whole duration. stdout is now read as a character stream with CR and LF both ending a line. The watchdog was also stricter than its own message: it only accepted a recognised Fra:/Saved: line as a sign of life, so any output we were not parsing counted as silence. Any output now proves Blender is alive, which is what "produced no output" is asking; finished frames still drive progress, since a single frame emits hundreds of status updates. Also passes -noaudio: a render node has no sound device, and initialising audio under a session-less service account is a known way to hang. Covered by tests over a realistic stdout chunk where progress is CR-separated and only the saved lines end in LF — newline-only splitting yields one unusable blob and no progress at all. Worker 1.5.1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
45 lines
1.8 KiB
XML
45 lines
1.8 KiB
XML
<Project Sdk="Microsoft.NET.Sdk.Worker">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net8.0</TargetFramework>
|
|
<Nullable>enable</Nullable>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<RootNamespace>VFXReviewWorker</RootNamespace>
|
|
<AssemblyName>VFXReviewWorker</AssemblyName>
|
|
<!-- Single self-contained exe for render nodes: dotnet publish -r win-x64 (see README) -->
|
|
<InvariantGlobalization>true</InvariantGlobalization>
|
|
<!--
|
|
The version is a property of the build, not of the machine it lands on:
|
|
it is stamped here and read back from the assembly at runtime, so a
|
|
workstation cannot report a version it is not actually running. Bump on
|
|
every change that gets published. publish.ps1 appends the git SHA via
|
|
SourceRevisionId, giving "1.1.0+feb1c7b".
|
|
-->
|
|
<Version>1.5.1</Version>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.1" />
|
|
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.1" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<InternalsVisibleTo Include="VFXReviewWorker.Tests" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<!--
|
|
Headless AE build script ships beside the exe. CopyToPublishDirectory is
|
|
set explicitly: CopyToOutputDirectory alone governs the build folder, and
|
|
an incremental publish then leaves the script out of a freshly-cleaned
|
|
publish directory. publish.ps1 copies it again and verifies, because the
|
|
exe cannot run a preview job without it.
|
|
-->
|
|
<Content Include="..\scripts\vfxr_build_preview.jsx" Link="scripts\vfxr_build_preview.jsx">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
|
|
</Content>
|
|
</ItemGroup>
|
|
|
|
</Project>
|