← Back to all runs

Build Run: c69d3755

CodexCoder21Organization/TinySiteWui

Stored run summary updated . Data age: 67m 52s.

Projectstinysitewui:tinysite-wui
RepositoryCodexCoder21Organization/TinySiteWuibranch fix/storage-call-failure-does-not-fail-concurrent-requestscommit 31b10f24ef51
Droplets (0 active, 1 total)
Image: 245388985 · 2 vCPU
Status
COMPLETED
Build Rules
2 built, 0 failed, 2 total
Tests
18 passed, 0 failed, 18 total
1 flaky — failed, then passed when retried; each flagged row below shows the retry's result
0%50%100%Tests passedTests failedTests canceled before they reached a verdictTests started and still runningTests started (including the ones still running)Tests finished, whether they passed or notTests passed or failed, excluding the ones canceledTests passedpassedfailedrunning06m 19s
Test ages
024680-1s01-10s610-30s530-60s21-5m75-15m015-60m01h+0test lifespanpassedfailedrunningcanceled

20 test attempts: 18 passed, 1 failed, 1 canceled.

Lane activity
037.5s1m 15s1m 52s2m 30sexecuting for06m 21s
Hover or focus a rising line to name the lane and the test it was executing.
passedfailedstill runningcanceled

4 lanes across 1 droplet, 20 test attempts, over 6m 21s of testing.

Lane numbers are derived, not recorded: the coordinator reports the droplet an attempt ran on but no lane, so attempts are packed onto the lowest-numbered lane of their droplet that was free when they started. The number of lanes per droplet is exactly the number the runner used; which lane a particular test is drawn on is this reconstruction's.

Requested
1 minute
spent waiting (pending)
Started
Total duration from build request until completion: 15m 8s Excluding the 1m 24s spent pending in the queue: 13m 43s15m 8spending: 1m 24s wall clock. Queue time: the real elapsed time from run creation until the first recorded phase began. This is time the run waited before execution started.pendingprovisioning droplet: 3m 11s wall clock. Lifecycle time: the real elapsed time the run spent in the provisioning droplet phase, from entering it until the next recorded phase began. If it is the final phase, the span ends at run completion or the current render time while the run is in progress.provisioning droplet3m 11sinstalling dependencies: 12.5s wall clock. Lifecycle time: the real elapsed time the run spent in the installing dependencies phase, from entering it until the next recorded phase began. If it is the final phase, the span ends at run completion or the current render time while the run is in progress.installing dependenciesuploading project: 401ms wall clock. Lifecycle time: the real elapsed time the run spent in the uploading project phase, from entering it until the next recorded phase began. If it is the final phase, the span ends at run completion or the current render time while the run is in progress.uploading projectbuild rules: 3m 58s wall clock. Lifecycle time: the real elapsed time the run spent in the build rules phase, from entering it until the next recorded phase began. If it is the final phase, the span ends at run completion or the current render time while the run is in progress. This includes work after the last build rule finished while the run remained in the phase. CPU time: 1.5s. CPU time: the sum of all measured individual build rules CPU times. Because build rules run in parallel across multiple cores and droplets, this is normally larger than the wall-clock elapsed time.build rulesLifecycle time: the real elapsed time the run spent in the build rules phase, from entering it until the next recorded phase began. If it is the final phase, the span ends at run completion or the current render time while the run is in progress. This includes work after the last build rule finished while the run remained in the phase.3m 58s (wall clock)CPU time: the sum of all measured individual build rules CPU times. Because build rules run in parallel across multiple cores and droplets, this is normally larger than the wall-clock elapsed time.1.5s (cpu time)unit tests: 6m 21s wall clock. Lifecycle time: the real elapsed time the run spent in the unit tests phase, from entering it until the next recorded phase began. If it is the final phase, the span ends at run completion or the current render time while the run is in progress. This includes work after the last test finished, such as dispatching @PerformanceTest tests to the performance-test service. CPU time: 2m 44s. CPU time: the sum of all measured individual tests CPU times. Because tests run in parallel across multiple cores and droplets, this is normally larger than the wall-clock elapsed time.unit testsLifecycle time: the real elapsed time the run spent in the unit tests phase, from entering it until the next recorded phase began. If it is the final phase, the span ends at run completion or the current render time while the run is in progress. This includes work after the last test finished, such as dispatching @PerformanceTest tests to the performance-test service.6m 21s (wall clock)CPU time: the sum of all measured individual tests CPU times. Because tests run in parallel across multiple cores and droplets, this is normally larger than the wall-clock elapsed time.2m 44s (cpu time)collecting results: 63ms wall clock. Lifecycle time: the real elapsed time the run spent in the collecting results phase, from entering it until the next recorded phase began. If it is the final phase, the span ends at run completion or the current render time while the run is in progress.collecting resultsfinishing: 12ms wall clock. Lifecycle time: the real elapsed time the run spent in the finishing phase, from entering it until the next recorded phase began. If it is the final phase, the span ends at run completion or the current render time while the run is in progress.finishing
test time
11m 11s
cpu time
2m 44s
Finished
Notes
PR https://github.com/CodexCoder21Organization/TinySiteWui/pull/3 Commit https://github.com/CodexCoder21Organization/TinySiteWui/commit/31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4 kotlin-build-ci-upload-request=a65c4575-c347-4e30-8934-db593ec72bdd Dynamic dispatch degradation: 1 failed-test re-lease(s) within the run (see dispatch_decision events for details)

Build Rules

2 built, 0 failed, 2 total
StatusBuild RuleDurationOutputError
PASSEDtinysitewui.buildFiledropServiceForTests()166ms1 file, 1.6 MB
PASSEDtinysitewui.buildMaven()1348ms83 files, 41.7 MB

Test Results

18 passed, 0 failed, 18 total
StatusProjectTestDurationError
PASSEDtinysitewui.testtestBrowserPublishesAFolderAndOpensTheSite112202ms
PASSEDtinysitewui.testtestBrowserRetryAfterAFailedPublishSendsOnlyTheRest117526ms
PASSEDtinysitewui.testtestBrowserSendsDigestsAndLeavesAnUnknownCommitAlone87574ms
PASSEDtinysitewui.testtestCommitThatMisstatesItsSessionIsRefused6865ms
PASSEDtinysitewui.testtestConcurrentPublishesAndVisitsStayIntact30047ms
PASSEDtinysitewui.testtestEveryKnownExtensionIsServedWithItsContentType23175ms
PASSEDtinysitewui.testtestFileThatShrinksWhileBeingServedIsCutOffNotPadded8799ms
PASSEDtinysitewui.testtestHomeListsOnlyPublishedSites10730ms
PASSEDtinysitewui.testtestLostCommitAnswerIsConfirmedNotSentAgain65170ms
PASSEDtinysitewui.testtestMisusedUploadsAreRefusedAndStoreNothing3842ms
PASSEDtinysitewui.testtestPublishedSiteServesIndexAndNestedAssets12433ms
PASSEDtinysitewui.testtestRangeRequestsReturnExactlyTheBytesAsked19827ms
PASSEDtinysitewui.testtestSiteStopsBeingServedWhenItExpires7181ms
PASSEDtinysitewui.testtestStorageServiceRestartDoesNotRebuildTheResolver flaky — passed on attempt 2 of 379994ms
Attempts (3)
AttemptStatusDurationDropletCanonicalError
1 of 3FAILED1m 32s607349953—java.lang.AssertionError: visit 0 after the storage service restarted must be served, but answered: <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Storage service unavailable - TinySite</title><link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect width='16' height='16' rx='3' fill='%230f766e'/%3E%3C/svg%3E"><style> body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; margin: 0; padding: 0; background: #f5f5f5; color: #333; } .container { max-width: 1100px; margin: 0 auto; padding: 20px; } header { background: #0f766e; color: white; padding: 16px 0; margin-bottom: 24px; } header .container { display: flex; align-items: center; justify-content: space-between; } header h1 { margin: 0; font-size: 24px; } header h1 a { color: white; text-decoration: none; } header .tagline { color: rgba(255,255,255,0.85); font-size: 14px; } .card { background: white; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); padding: 24px; margin-bottom: 16px; } .card h2 { margin: 0 0 16px 0; } .btn { display: inline-block; padding: 10px 20px; border-radius: 6px; border: none; cursor: pointer; font-size: 14px; font-weight: 500; text-decoration: none; } .btn-primary { background: #0f766e; color: white; } .btn-primary:hover { background: #115e59; color: white; } .btn-primary:disabled { background: #9ca3af; cursor: not-allowed; } .btn-secondary { background: #e5e7eb; color: #374151; } .btn-secondary:hover { background: #d1d5db; } .btn-sm { padding: 6px 12px; font-size: 12px; } table { width: 100%; border-collapse: collapse; } th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #e5e7eb; } th { font-weight: 600; color: #6b7280; font-size: 13px; text-transform: uppercase; letter-spacing: 0.5px; } td.path { word-break: break-all; } a { color: #0f766e; } a:hover { color: #115e59; } .meta { color: #6b7280; font-size: 13px; } input[type="text"], select { padding: 8px 12px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 14px; width: 100%; box-sizing: border-box; } label { display: block; font-weight: 500; margin-bottom: 4px; font-size: 14px; } .form-group { margin-bottom: 16px; } .empty { text-align: center; padding: 40px; color: #6b7280; } .home-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; } @media (max-width: 768px) { .home-grid { grid-template-columns: 1fr; } } .site-bubble { background: white; border: 1px solid #d1d5db; border-radius: 8px; padding: 16px; margin-bottom: 12px; text-decoration: none; color: inherit; display: block; transition: border-color 0.15s; } .site-bubble:hover { border-color: #0f766e; color: inherit; } .site-bubble:last-child { margin-bottom: 0; } .site-bubble .site-title { font-weight: 600; font-size: 15px; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .site-bubble .site-meta { color: #6b7280; font-size: 12px; } .drop-zone { display: block; position: relative; border: 2px dashed #d1d5db; border-radius: 8px; padding: 28px 20px; text-align: center; color: #6b7280; cursor: pointer; transition: all 0.2s; } .drop-zone:hover, .drop-zone:focus-within, .drop-zone.dragover { border-color: #0f766e; color: #0f766e; background: #f0fdfa; } .drop-zone:focus-within { box-shadow: 0 0 0 3px rgba(15,118,110,0.25); } .drop-zone.dragover { box-shadow: 0 0 0 4px rgba(15,118,110,0.15); } /* Visually hidden but still focusable, so the picker stays reachable from the keyboard. */ .drop-zone-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: 0; border: 0; opacity: 0; } .drop-zone-title { font-weight: 500; font-size: 15px; } .drop-zone-hint { font-size: 12px; margin-top: 6px; color: #9ca3af; } .files-alternative { font-size: 13px; color: #6b7280; margin-top: 8px; } .files-alternative label { display: inline; font-weight: 500; color: #0f766e; cursor: pointer; text-decoration: underline; } .file-summary { margin-top: 12px; font-size: 13px; color: #374151; } .file-summary ul { margin: 8px 0 0 0; padding-left: 20px; max-height: 180px; overflow: auto; color: #6b7280; } .file-summary li { word-break: break-all; } .notice { padding: 12px 16px; border-radius: 8px; font-size: 14px; margin-top: 12px; } .notice-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; } .notice-warning { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; } [hidden] { display: none !important; } .upload-progress { margin-top: 16px; } .upload-bar { background: #e5e7eb; border-radius: 999px; height: 14px; overflow: hidden; } .upload-bar-fill { background: #0f766e; height: 100%; width: 0%; border-radius: 999px; transition: width 0.15s linear; } .upload-stats { display: flex; justify-content: space-between; gap: 12px; color: #6b7280; font-size: 13px; margin-top: 6px; } .site-link-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; } .site-link { font-size: 18px; font-weight: 600; word-break: break-all; } .facts { display: grid; grid-template-columns: max-content 1fr; gap: 12px 24px; margin: 20px 0 0 0; } .facts dt { color: #6b7280; font-size: 13px; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 600; } .facts dd { margin: 0; } .moment { display: inline-flex; flex-direction: column; } .moment-relative { font-weight: 600; color: #111827; } .moment-local, .moment-utc { color: #6b7280; font-size: 12px; } .moment-compact { border-bottom: 1px dotted #9ca3af; cursor: help; } </style></head><body><header><div class="container"><h1><a href="/">TinySite</a></h1><span class="tagline">Small websites, shared by link</span></div></header><div class="container"><div class="card"><h2>Storage service unavailable</h2><p id="errorMessage">This file exists but could not be read from storage: No peer providing service &#39;filedrop&#39; was found, so no bytecode fetch for &#39;filedrop.api.FiledropApi&#39; was attempted. Searched: peer registry (0 known peer(s)), gossip service announcements (0 known service(s), 0 matching &#39;filedrop&#39;), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for &#39;filedrop&#39; was learned during this resolution attempt.</p><p><a href="/">Back to TinySite</a></p></div></div><script> (function () { function pad(n) { return (n < 10 ? '0' : '') + n; } function localText(date) { var zone = ''; try { var parts = new Intl.DateTimeFormat(undefined, { timeZoneName: 'short' }).formatToParts(date); for (var i = 0; i < parts.length; i++) { if (parts[i].type === 'timeZoneName') zone = parts[i].value; } } catch (ignored) { zone = ''; } return date.getFullYear() + '-' + pad(date.getMonth() + 1) + '-' + pad(date.getDate()) + ' ' + pad(date.getHours()) + ':' + pad(date.getMinutes()) + ':' + pad(date.getSeconds()) + (zone ? ' ' + zone : ''); } var zoneName = ''; try { zoneName = Intl.DateTimeFormat().resolvedOptions().timeZone || ''; } catch (ignored) { zoneName = ''; } var isUtc = zoneName === 'UTC' || zoneName === 'Etc/UTC'; var stacked = document.querySelectorAll('.moment[data-moment-millis]'); for (var i = 0; i < stacked.length; i++) { var date = new Date(Number(stacked[i].getAttribute('data-moment-millis'))); var local = stacked[i].querySelector('.moment-local'); var utc = stacked[i].querySelector('.moment-utc'); if (isUtc || !local) continue; local.textContent = localText(date); local.hidden = false; if (utc) utc.hidden = false; } var compact = document.querySelectorAll('.moment-compact[data-moment-millis]'); for (var j = 0; j < compact.length; j++) { var when = new Date(Number(compact[j].getAttribute('data-moment-millis'))); var utcText = compact[j].getAttribute('data-moment-utc'); compact[j].title = compact[j].textContent + '\n' + (isUtc ? utcText : localText(when) + '\n' + utcText); } })(); </script></body></html>. Expected <200>, actual <502>. at kotlin.test.DefaultAsserter.fail(DefaultAsserter.kt:16) at kotlin.test.Asserter$DefaultImpls.assertTrue(Assertions.kt:652) at kotlin.test.DefaultAsserter.assertTrue(DefaultAsserter.kt:11) at kotlin.test.Asserter$DefaultImpls.assertEquals(Assertions.kt:671) at kotlin.test.DefaultAsserter.assertEquals(DefaultAsserter.kt:11) at kotlin.test.AssertionsKt__AssertionsKt.assertEquals(Assertions.kt:63) at kotlin.test.AssertionsKt.assertEquals(Unknown Source) at tinysitewui.test.TestStorageServiceRestartDoesNotRebuildTheResolverKt.testStorageServiceRestartDoesNotRebuildTheResolver(testStorageServiceRestartDoesNotRebuildTheResolver.kt:260) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at kompile.TestRunner.executeTest(TestRunner.kt:47) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at community.kotlin.kompile.testrunner.bootstrap.BootstrapRunner.main(BootstrapRunner.java:449)
Console output of attempt 1 of 3 (29111 bytes)
[FiledropClient] Shared UrlResolver created, peer discovery started
[main] INFO org.eclipse.jetty.server.Server - jetty-11.0.20; built: 2024-01-29T21:04:22.394Z; git: 922f8dc188f7011e60d0361de585fd4ac4d63064; jvm 21.0.11+10-1-24.04.2-Ubuntu
Closing root connection to unknown-peer/shared-root: reason=ADMISSION_RETIREMENT, pendingClientRequests=0, initiatedBy=PendingDialAdmissionController.Entry.closeChannel
[main] INFO org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@52815fa3{/,null,AVAILABLE}
[main] INFO org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@563f38c4{HTTP/1.1, (http/1.1)}{0.0.0.0:46449}
[main] INFO org.eclipse.jetty.server.Server - Started Server@69ee81fc{STARTING}[11.0.20,sto=0] @12961ms
[ConnectionClosed] Connection connection@138f0d0 closed: initiator=REMOTE_END_OF_STREAM; direction=inbound; localAddress=/ip4/127.0.0.1/tcp/36703; remoteAddress=/ip4/127.0.0.1/tcp/49184; remotePeerId=12D3KooWKhYGwWYGojNoQKGbPCYRDgshjdUq6ryT3Uz55ftMGEz4; closedBy=none; cause=none
[ConnectionClosed] Connection connection@1305681e closed: initiator=LOCAL_CLOSE; direction=outbound; localAddress=/ip4/127.0.0.1/tcp/49184; remoteAddress=/ip4/127.0.0.1/tcp/36703; remotePeerId=12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc; closedBy=io.libp2p.transport.implementation.NettyChannelCloseKt.closeNettyChannelOnce; cause=none
An uncaught NotificationEffect bubbled up to the thread root!
You can learn more about handling NotificationEffects at https://github.com/kotlin-algebraic-effects/
Connection connection@138f0d0 closed: initiator=REMOTE_END_OF_STREAM; direction=inbound; localAddress=/ip4/127.0.0.1/tcp/36703; remoteAddress=/ip4/127.0.0.1/tcp/49184; remotePeerId=12D3KooWKhYGwWYGojNoQKGbPCYRDgshjdUq6ryT3Uz55ftMGEz4; closedBy=none; cause=none [unhandled ConnectionClosedEffect from ConnectionCloseReasons.kt:127]
Connection connection@1305681e closed: initiator=LOCAL_CLOSE; direction=outbound; localAddress=/ip4/127.0.0.1/tcp/49184; remoteAddress=/ip4/127.0.0.1/tcp/36703; remotePeerId=12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc; closedBy=io.libp2p.transport.implementation.NettyChannelCloseKt.closeNettyChannelOnce; cause=none [unhandled ConnectionClosedEffect from ConnectionCloseReasons.kt:127]
Closing root connection to 12D3KooWKhYGwWYGojNoQKGbPCYRDgshjdUq6ryT3Uz55ftMGEz4/shared-root: reason=EXPLICIT_CLOSE, pendingClientRequests=0, initiatedBy=UrlProtocol2.close
Relay finished disconnect cleanup for peer '12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc'; cached announcement removed: false [unhandled RelayDisconnectedPeerCleanupEffect from RelayService.kt:9726]
[ConnectionClosed] Connection connection@434f8de5 closed: initiator=REMOTE_END_OF_STREAM; direction=outbound; localAddress=/ip4/127.0.0.1/tcp/49168; remoteAddress=/ip4/127.0.0.1/tcp/36703; remotePeerId=12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc; closedBy=none; cause=none
Connection connection@434f8de5 closed: initiator=REMOTE_END_OF_STREAM; direction=outbound; localAddress=/ip4/127.0.0.1/tcp/49168; remoteAddress=/ip4/127.0.0.1/tcp/36703; remotePeerId=12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc; closedBy=none; cause=none [unhandled ConnectionClosedEffect from ConnectionCloseReasons.kt:127]
[ConnectionClosed] Connection connection@27d94b28 closed: initiator=LOCAL_CLOSE; direction=inbound; localAddress=/ip4/127.0.0.1/tcp/36703; remoteAddress=/ip4/127.0.0.1/tcp/49168; remotePeerId=12D3KooWKhYGwWYGojNoQKGbPCYRDgshjdUq6ryT3Uz55ftMGEz4; closedBy=foundation.url.protocol.Libp2pHostFactoryKt$awaitedResponseOutboxFor$1$3.close; cause=none
Connection connection@27d94b28 closed: initiator=LOCAL_CLOSE; direction=inbound; localAddress=/ip4/127.0.0.1/tcp/36703; remoteAddress=/ip4/127.0.0.1/tcp/49168; remotePeerId=12D3KooWKhYGwWYGojNoQKGbPCYRDgshjdUq6ryT3Uz55ftMGEz4; closedBy=foundation.url.protocol.Libp2pHostFactoryKt$awaitedResponseOutboxFor$1$3.close; cause=none [unhandled ConnectionClosedEffect from ConnectionCloseReasons.kt:127]
Relay finished disconnect cleanup for peer '12D3KooWKhYGwWYGojNoQKGbPCYRDgshjdUq6ryT3Uz55ftMGEz4'; cached announcement removed: false [unhandled RelayDisconnectedPeerCleanupEffect from RelayService.kt:9726]
[UrlResolver bytecode flight] 'url://filedrop/|filedrop.api.FiledropApi' failed: foundation.url.resolver.UrlResolutionException: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (1 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.
Reachability verification for peer '12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc' encountered 3 failed attempts: io.libp2p.etc.types.NonCompleteException: java.util.concurrent.CompletionException: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /137.184.8.25:36703; io.libp2p.etc.types.NonCompleteException: java.util.concurrent.CompletionException: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:36703; io.libp2p.etc.types.NothingToCompleteException: null [unhandled PeerVerificationFailureWarningEffect from PeerVerificationFailureWarningEffect.kt:28]
[UrlResolver bytecode flight] 'url://filedrop/|filedrop.api.FiledropApi' failed: foundation.url.resolver.UrlResolutionException: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (0 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.
[qtp1632413663-50] WARN org.eclipse.jetty.server.handler.ContextHandler.ROOT - tinysitewui.ServeSiteServlet-14dd7b39: Could not reach storage for site '4d9730655a' (listing its files failed: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (1 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.)
foundation.url.resolver.UrlResolutionException: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (0 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.
	at foundation.url.resolver.UrlProtocol2.requestBytecodeConditionallyFromService(UrlResolver.kt:12387)
	at foundation.url.resolver.UrlProtocol2.requestBytecodeFromService(UrlResolver.kt:12187)
	at foundation.url.resolver.UrlResolver.requestBytecodeWithStaleFallback(UrlResolver.kt:30105)
	at foundation.url.resolver.UrlResolver.executeBytecodeFlight(UrlResolver.kt:30053)
	at foundation.url.resolver.UrlResolver.getOrStartBytecodeFlight$lambda$10(UrlResolver.kt:29971)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
[RESOLVER-NOTIFICATION][WARNING] Active query for 'filedrop' failed while opening the query stream with peer '12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc' at '/ip4/127.0.0.1/tcp/36703/p2p/12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc': java.util.concurrent.ExecutionException: io.libp2p.etc.types.NonCompleteException: java.util.concurrent.CompletionException: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:36703 <- io.libp2p.etc.types.NonCompleteException: java.util.concurrent.CompletionException: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:36703 <- java.util.concurrent.CompletionException: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:36703 <- io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:36703 <- java.net.ConnectException: Connection refused
[UrlResolver bytecode flight] 'url://filedrop/|filedrop.api.FiledropApi' failed: foundation.url.resolver.UrlResolutionException: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (1 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.
Reachability verification for peer '12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc' encountered 1 failed attempts: io.libp2p.etc.types.NonCompleteException: java.util.concurrent.CompletionException: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:36703 [unhandled PeerVerificationFailureWarningEffect from PeerVerificationFailureWarningEffect.kt:28]
[UrlResolver bytecode flight] 'url://filedrop/|filedrop.api.FiledropApi' failed: foundation.url.resolver.UrlResolutionException: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (0 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.
[qtp1632413663-47] WARN org.eclipse.jetty.server.handler.ContextHandler.ROOT - tinysitewui.ServeSiteServlet-14dd7b39: Could not reach storage for site '4d9730655a' (listing its files failed: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (1 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.)
foundation.url.resolver.UrlResolutionException: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (0 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.
	at foundation.url.resolver.UrlProtocol2.requestBytecodeConditionallyFromService(UrlResolver.kt:12387)
	at foundation.url.resolver.UrlProtocol2.requestBytecodeFromService(UrlResolver.kt:12187)
	at foundation.url.resolver.UrlResolver.requestBytecodeWithStaleFallback(UrlResolver.kt:30105)
	at foundation.url.resolver.UrlResolver.executeBytecodeFlight(UrlResolver.kt:30053)
	at foundation.url.resolver.UrlResolver.getOrStartBytecodeFlight$lambda$10(UrlResolver.kt:29971)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
[qtp1632413663-44] WARN org.eclipse.jetty.server.handler.ContextHandler.ROOT - tinysitewui.ServeSiteServlet-14dd7b39: Could not reach storage for site '4d9730655a' (listing its files failed: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (1 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.)
foundation.url.resolver.UrlResolutionException: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (0 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.
	at foundation.url.resolver.UrlProtocol2.requestBytecodeConditionallyFromService(UrlResolver.kt:12387)
	at foundation.url.resolver.UrlProtocol2.requestBytecodeFromService(UrlResolver.kt:12187)
	at foundation.url.resolver.UrlResolver.requestBytecodeWithStaleFallback(UrlResolver.kt:30105)
	at foundation.url.resolver.UrlResolver.executeBytecodeFlight(UrlResolver.kt:30053)
	at foundation.url.resolver.UrlResolver.getOrStartBytecodeFlight$lambda$10(UrlResolver.kt:29971)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
A visit cut off by the restart was answered 502
A visit cut off by the restart was answered 502
A visit cut off by the restart was answered 502
[UrlResolver bytecode flight] 'url://filedrop/|filedrop.api.FiledropApi' failed: foundation.url.resolver.UrlResolutionException: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (0 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.
[qtp1632413663-46] WARN org.eclipse.jetty.server.handler.ContextHandler.ROOT - tinysitewui.ServeSiteServlet-14dd7b39: Could not read 'index.html' of site 'ef8080feb1'
foundation.url.resolver.UrlResolutionException: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (0 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.
	at foundation.url.resolver.UrlProtocol2.requestBytecodeConditionallyFromService(UrlResolver.kt:12387)
	at foundation.url.resolver.UrlProtocol2.requestBytecodeFromService(UrlResolver.kt:12187)
	at foundation.url.resolver.UrlResolver.requestBytecodeWithStaleFallback(UrlResolver.kt:30105)
	at foundation.url.resolver.UrlResolver.executeBytecodeFlight(UrlResolver.kt:30053)
	at foundation.url.resolver.UrlResolver.getOrStartBytecodeFlight$lambda$10(UrlResolver.kt:29971)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
[qtp1632413663-50] WARN org.eclipse.jetty.server.handler.ContextHandler.ROOT - tinysitewui.ServeSiteServlet-14dd7b39: Could not read 'index.html' of site '4d9730655a'
foundation.url.resolver.UrlResolutionException: No peer providing service 'filedrop' was found, so no bytecode fetch for 'filedrop.api.FiledropApi' was attempted. Searched: peer registry (0 known peer(s)), gossip service announcements (0 known service(s), 0 matching 'filedrop'), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for 'filedrop' was learned during this resolution attempt.
	at foundation.url.resolver.UrlProtocol2.requestBytecodeConditionallyFromService(UrlResolver.kt:12387)
	at foundation.url.resolver.UrlProtocol2.requestBytecodeFromService(UrlResolver.kt:12187)
	at foundation.url.resolver.UrlResolver.requestBytecodeWithStaleFallback(UrlResolver.kt:30105)
	at foundation.url.resolver.UrlResolver.executeBytecodeFlight(UrlResolver.kt:30053)
	at foundation.url.resolver.UrlResolver.getOrStartBytecodeFlight$lambda$10(UrlResolver.kt:29971)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
[main] INFO org.eclipse.jetty.server.Server - Stopped Server@69ee81fc{STOPPING}[11.0.20,sto=0]
[main] INFO org.eclipse.jetty.server.AbstractConnector - Stopped ServerConnector@563f38c4{HTTP/1.1, (http/1.1)}{0.0.0.0:0}
[main] INFO org.eclipse.jetty.server.handler.ContextHandler - Stopped o.e.j.s.ServletContextHandler@52815fa3{/,null,STOPPED}
Closing root connection to 12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc/filedrop: reason=EXPLICIT_CLOSE, pendingClientRequests=0, initiatedBy=UrlProtocol2.close
[ConnectionClosed] Connection connection@71770434 closed: initiator=LOCAL_CLOSE; direction=outbound; localAddress=/ip4/127.0.0.1/tcp/34770; remoteAddress=/ip4/127.0.0.1/tcp/36703; remotePeerId=12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc; closedBy=unknown; cause=none
[ConnectionClosed] Connection connection@7cc9e6c6 closed: initiator=REMOTE_END_OF_STREAM; direction=inbound; localAddress=/ip4/127.0.0.1/tcp/36703; remoteAddress=/ip4/127.0.0.1/tcp/34770; remotePeerId=12D3KooWKhYGwWYGojNoQKGbPCYRDgshjdUq6ryT3Uz55ftMGEz4; closedBy=none; cause=none
Connection connection@7cc9e6c6 closed: initiator=REMOTE_END_OF_STREAM; direction=inbound; localAddress=/ip4/127.0.0.1/tcp/36703; remoteAddress=/ip4/127.0.0.1/tcp/34770; remotePeerId=12D3KooWKhYGwWYGojNoQKGbPCYRDgshjdUq6ryT3Uz55ftMGEz4; closedBy=none; cause=none [unhandled ConnectionClosedEffect from ConnectionCloseReasons.kt:127]
Connection connection@71770434 closed: initiator=LOCAL_CLOSE; direction=outbound; localAddress=/ip4/127.0.0.1/tcp/34770; remoteAddress=/ip4/127.0.0.1/tcp/36703; remotePeerId=12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc; closedBy=unknown; cause=none [unhandled ConnectionClosedEffect from ConnectionCloseReasons.kt:127]
java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at community.kotlin.kompile.testrunner.bootstrap.BootstrapRunner.main(BootstrapRunner.java:449)
Caused by: java.lang.AssertionError: visit 0 after the storage service restarted must be served, but answered: <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Storage service unavailable - TinySite</title><link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect width='16' height='16' rx='3' fill='%230f766e'/%3E%3C/svg%3E"><style>
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; margin: 0; padding: 0; background: #f5f5f5; color: #333; }
.container { max-width: 1100px; margin: 0 auto; padding: 20px; }
header { background: #0f766e; color: white; padding: 16px 0; margin-bottom: 24px; }
header .container { display: flex; align-items: center; justify-content: space-between; }
header h1 { margin: 0; font-size: 24px; }
header h1 a { color: white; text-decoration: none; }
header .tagline { color: rgba(255,255,255,0.85); font-size: 14px; }
.card { background: white; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); padding: 24px; margin-bottom: 16px; }
.card h2 { margin: 0 0 16px 0; }
.btn { display: inline-block; padding: 10px 20px; border-radius: 6px; border: none; cursor: pointer; font-size: 14px; font-weight: 500; text-decoration: none; }
.btn-primary { background: #0f766e; color: white; }
.btn-primary:hover { background: #115e59; color: white; }
.btn-primary:disabled { background: #9ca3af; cursor: not-allowed; }
.btn-secondary { background: #e5e7eb; color: #374151; }
.btn-secondary:hover { background: #d1d5db; }
.btn-sm { padding: 6px 12px; font-size: 12px; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #e5e7eb; }
th { font-weight: 600; color: #6b7280; font-size: 13px; text-transform: uppercase; letter-spacing: 0.5px; }
td.path { word-break: break-all; }
a { color: #0f766e; }
a:hover { color: #115e59; }
.meta { color: #6b7280; font-size: 13px; }
input[type="text"], select { padding: 8px 12px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 14px; width: 100%; box-sizing: border-box; }
label { display: block; font-weight: 500; margin-bottom: 4px; font-size: 14px; }
.form-group { margin-bottom: 16px; }
.empty { text-align: center; padding: 40px; color: #6b7280; }
.home-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
@media (max-width: 768px) { .home-grid { grid-template-columns: 1fr; } }
.site-bubble { background: white; border: 1px solid #d1d5db; border-radius: 8px; padding: 16px; margin-bottom: 12px; text-decoration: none; color: inherit; display: block; transition: border-color 0.15s; }
.site-bubble:hover { border-color: #0f766e; color: inherit; }
.site-bubble:last-child { margin-bottom: 0; }
.site-bubble .site-title { font-weight: 600; font-size: 15px; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.site-bubble .site-meta { color: #6b7280; font-size: 12px; }
.drop-zone { display: block; position: relative; border: 2px dashed #d1d5db; border-radius: 8px; padding: 28px 20px; text-align: center; color: #6b7280; cursor: pointer; transition: all 0.2s; }
.drop-zone:hover, .drop-zone:focus-within, .drop-zone.dragover { border-color: #0f766e; color: #0f766e; background: #f0fdfa; }
.drop-zone:focus-within { box-shadow: 0 0 0 3px rgba(15,118,110,0.25); }
.drop-zone.dragover { box-shadow: 0 0 0 4px rgba(15,118,110,0.15); }
/* Visually hidden but still focusable, so the picker stays reachable from the keyboard. */
.drop-zone-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: 0; border: 0; opacity: 0; }
.drop-zone-title { font-weight: 500; font-size: 15px; }
.drop-zone-hint { font-size: 12px; margin-top: 6px; color: #9ca3af; }
.files-alternative { font-size: 13px; color: #6b7280; margin-top: 8px; }
.files-alternative label { display: inline; font-weight: 500; color: #0f766e; cursor: pointer; text-decoration: underline; }
.file-summary { margin-top: 12px; font-size: 13px; color: #374151; }
.file-summary ul { margin: 8px 0 0 0; padding-left: 20px; max-height: 180px; overflow: auto; color: #6b7280; }
.file-summary li { word-break: break-all; }
.notice { padding: 12px 16px; border-radius: 8px; font-size: 14px; margin-top: 12px; }
.notice-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.notice-warning { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }
[hidden] { display: none !important; }
.upload-progress { margin-top: 16px; }
.upload-bar { background: #e5e7eb; border-radius: 999px; height: 14px; overflow: hidden; }
.upload-bar-fill { background: #0f766e; height: 100%; width: 0%; border-radius: 999px; transition: width 0.15s linear; }
.upload-stats { display: flex; justify-content: space-between; gap: 12px; color: #6b7280; font-size: 13px; margin-top: 6px; }
.site-link-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.site-link { font-size: 18px; font-weight: 600; word-break: break-all; }
.facts { display: grid; grid-template-columns: max-content 1fr; gap: 12px 24px; margin: 20px 0 0 0; }
.facts dt { color: #6b7280; font-size: 13px; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 600; }
.facts dd { margin: 0; }
.moment { display: inline-flex; flex-direction: column; }
.moment-relative { font-weight: 600; color: #111827; }
.moment-local, .moment-utc { color: #6b7280; font-size: 12px; }
.moment-compact { border-bottom: 1px dotted #9ca3af; cursor: help; }
</style></head><body><header><div class="container"><h1><a href="/">TinySite</a></h1><span class="tagline">Small websites, shared by link</span></div></header><div class="container"><div class="card"><h2>Storage service unavailable</h2><p id="errorMessage">This file exists but could not be read from storage: No peer providing service &#39;filedrop&#39; was found, so no bytecode fetch for &#39;filedrop.api.FiledropApi&#39; was attempted. Searched: peer registry (0 known peer(s)), gossip service announcements (0 known service(s), 0 matching &#39;filedrop&#39;), relay lookup (connected relay: none), and active service queries against 1 operator-configured bootstrap peer(s) [12D3KooWG5abMd9ANWh4rEE8DCCmDghrtPo4oMRsquiNgk8Y5Umc]. No usable provider for &#39;filedrop&#39; was learned during this resolution attempt.</p><p><a href="/">Back to TinySite</a></p></div></div><script>
(function () {
  function pad(n) { return (n < 10 ? '0' : '') + n; }
  function localText(date) {
    var zone = '';
    try {
      var parts = new Intl.DateTimeFormat(undefined, { timeZoneName: 'short' }).formatToParts(date);
      for (var i = 0; i < parts.length; i++) { if (parts[i].type === 'timeZoneName') zone = parts[i].value; }
    } catch (ignored) { zone = ''; }
    return date.getFullYear() + '-' + pad(date.getMonth() + 1) + '-' + pad(date.getDate()) + ' ' +
      pad(date.getHours()) + ':' + pad(date.getMinutes()) + ':' + pad(date.getSeconds()) + (zone ? ' ' + zone : '');
  }
  var zoneName = '';
  try { zoneName = Intl.DateTimeFormat().resolvedOptions().timeZone || ''; } catch (ignored) { zoneName = ''; }
  var isUtc = zoneName === 'UTC' || zoneName === 'Etc/UTC';
  var stacked = document.querySelectorAll('.moment[data-moment-millis]');
  for (var i = 0; i < stacked.length; i++) {
    var date = new Date(Number(stacked[i].getAttribute('data-moment-millis')));
    var local = stacked[i].querySelector('.moment-local');
    var utc = stacked[i].querySelector('.moment-utc');
    if (isUtc || !local) continue;
    local.textContent = localText(date);
    local.hidden = false;
    if (utc) utc.hidden = false;
  }
  var compact = document.querySelectorAll('.moment-compact[data-moment-millis]');
  for (var j = 0; j < compact.length; j++) {
    var when = new Date(Number(compact[j].getAttribute('data-moment-millis')));
    var utcText = compact[j].getAttribute('data-moment-utc');
    compact[j].title = compact[j].textContent + '\n' + (isUtc ? utcText : localText(when) + '\n' + utcText);
  }
})();
</script></body></html>. Expected <200>, actual <502>.
	at kotlin.test.DefaultAsserter.fail(DefaultAsserter.kt:16)
	at kotlin.test.Asserter$DefaultImpls.assertTrue(Assertions.kt:652)
	at kotlin.test.DefaultAsserter.assertTrue(DefaultAsserter.kt:11)
	at kotlin.test.Asserter$DefaultImpls.assertEquals(Assertions.kt:671)
	at kotlin.test.DefaultAsserter.assertEquals(DefaultAsserter.kt:11)
	at kotlin.test.AssertionsKt__AssertionsKt.assertEquals(Assertions.kt:63)
	at kotlin.test.AssertionsKt.assertEquals(Unknown Source)
	at tinysitewui.test.TestStorageServiceRestartDoesNotRebuildTheResolverKt.testStorageServiceRestartDoesNotRebuildTheResolver(testStorageServiceRestartDoesNotRebuildTheResolver.kt:260)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at kompile.TestRunner.executeTest(TestRunner.kt:47)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	... 2 more
2 of 3PASSED1m 19s607349953yes (this is the published result)—
3 of 3CANCELED0ms607349953—Test attempt did not complete before another attempt reached a verdict
PASSEDtinysitewui.testtestTimedOutStorageCallDoesNotFailConcurrentRequests60592ms
PASSEDtinysitewui.testtestTimesAndSizesAreWordedByMagnitude12115ms
PASSEDtinysitewui.testtestUnreachableStorageIsNotReportedAsMissing8696ms
PASSEDtinysitewui.testtestUploadRefusesPathsOutsideTheSite4552ms

Build Log

[buildtest-coordinator] [2026-10-08 17:45:13] Coordinator work: waiting for archive analysis, queue position 1 of 1
[2026-10-08 17:45:13] Dynamic dispatch: seeded 18 work unit(s) (18 discovered test(s), 0 terminal before seeding) into the shared lease queue
[2026-10-08 17:45:14] Provisioning DigitalOcean droplet...
[2026-10-08 17:46:17] Droplet created: id=607349953, name=buildtest-c69d3755-a9f9310
[2026-10-08 17:46:17] Droplet active at 137.184.8.25
[2026-10-08 17:46:28] SSH access granted to droplet 607349953
[2026-10-08 17:46:28] Waiting for guest readiness on droplet 607349953
[2026-10-08 17:48:25] Guest readiness complete on droplet 607349953
[2026-10-08 17:48:25] Dynamic memory admission: droplet 0 has 4096 MiB RAM, 3221225472 bytes available to resident tests, and runner parallelism 4
[2026-10-08 17:48:25] Connecting via SSH and installing dependencies...
[2026-10-08 17:48:25] SSH connected
Stopped, disabled, and masked unattended-upgrades.service, apt-daily.service, apt-daily-upgrade.service, apt-daily.timer, and apt-daily-upgrade.timer; waited 0 seconds for apt/dpkg locks to clear
Dependencies already present (snapshot image), skipping installation
Java: openjdk version "21.0.11" 2026-04-21
Node.js: v18.19.1
Chromium: /usr/bin/chromium-browser
Coursier: /root/tools/coursier
Docker already present: Docker version 29.1.3, build 29.1.3-0ubuntu3~24.04.2
haveged already present
securerandom.source=file:/dev/urandom already set in /usr/lib/jvm/java-21-openjdk-amd64/conf/security/java.security
Dependencies installed successfully
Install image id: 245388985; base dependency fast path taken: true
[BuildDriver] Memory before swap: MemoryInfo(totalMemoryKb=4009860, availableMemoryKb=3485792, totalSwapKb=0, freeSwapKb=0)
mkswap: /swapfile: warning: wiping old swap signature.
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=30175526-28c7-40e9-bfb0-b765fd16d9eb
Swap file created and enabled
[BuildDriver] Memory after swap: MemoryInfo(totalMemoryKb=4009860, availableMemoryKb=3483220, totalSwapKb=4194300, freeSwapKb=4194300)
[BuildDriver] Swap verified: 4194300KB total swap (was 0KB)
[2026-10-08 17:48:38] Dependencies installed
[2026-10-08 17:48:38] Uploading project archive...
Extracted projects:
CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4

[2026-10-08 17:48:38] Projects on remote: CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4
[2026-10-08 17:48:38] Projects from archive: tinysitewui:tinysite-wui
[2026-10-08 17:48:38] Building and testing workspace...
[2026-10-08 17:48:38] [dispatch] droplet 0 ready
[2026-10-08 17:48:39] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testBrowserRetryAfterAFailedPublishSendsOnlyTheRest.kts] on droplet 0: its reservation of 2222 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 1685 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:48:39] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testBrowserPublishesAFolderAndOpensTheSite.kts] on droplet 0: its reservation of 2348 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 3907 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:48:39] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testLostCommitAnswerIsConfirmedNotSentAgain.kts] on droplet 0: its reservation of 1733 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 5847 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:48:39] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testConcurrentPublishesAndVisitsStayIntact.kts] on droplet 0: its reservation of 2218 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 7080 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:48:39] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testEveryKnownExtensionIsServedWithItsContentType.kts] on droplet 0: its reservation of 2162 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 8521 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:48:39] [dispatch] lease_issued: Issued lease 8dc08a0a-99f4-4c1a-9cbd-4dd0fc8e7d8a-c69d3755-aed76536-63e6-4c9a-8994-3b40ac274457-L0 with 8 test(s) [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testBrowserSendsDigestsAndLeavesAnUnknownCommitAlone.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testStorageServiceRestartDoesNotRebuildTheResolver.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testTimedOutStorageCallDoesNotFailConcurrentRequests.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testBrowserRetryAfterAFailedPublishSendsOnlyTheRest.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testBrowserPublishesAFolderAndOpensTheSite.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testLostCommitAnswerIsConfirmedNotSentAgain.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testConcurrentPublishesAndVisitsStayIntact.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testEveryKnownExtensionIsServedWithItsContentType.kts] to droplet 0 (pull-based handout from shared queue; 10 unit(s) remaining). Memory admission: predicted peak 2378715136 bytes; resident predicted peak 2378715136 of 3221225472 bytes; 842510336 bytes remaining budget
System memory: 3915MB, JVM heap: 1957MB
Downloading https://kotlin.directory/buildtest/runner/buildtest-runner/0.0.123/buildtest-runner-0.0.123.pom
Downloaded https://kotlin.directory/buildtest/runner/buildtest-runner/0.0.123/buildtest-runner-0.0.123.pom
Downloading https://kotlin.directory/buildtest/runner/buildtest-runner/0.0.123/buildtest-runner-0.0.123.pom.sha1
Downloaded https://kotlin.directory/buildtest/runner/buildtest-runner/0.0.123/buildtest-runner-0.0.123.pom.sha1
Downloading https://kotlin.directory/util/cache/hashtofile/hash-to-file-cache/0.0.11/hash-to-file-cache-0.0.11.pom
Downloading https://kotlin.directory/community/kotlin/kompile/testrunner/bootstrap/community-kotlin-kompile-testrunner-bootstrap/0.0.16/community-kotlin-kompile-testrunner-bootstrap-0.0.16.pom
Downloading https://kotlin.directory/kompile/manager/0.0.205/manager-0.0.205.pom
Downloading https://kotlin.directory/io/get-coursier/coursier-cache_2.13/2.1.31-buffer2/coursier-cache_2.13-2.1.31-buffer2.pom
Downloading https://kotlin.directory/kompile/executionenvironment/kompile-executionenvironment/0.0.44/kompile-executionenvironment-0.0.44.pom
Downloading https://kotlin.directory/kompile/buildscript/kompile-buildscript/0.0.43/kompile-buildscript-0.0.43.pom
Downloaded https://kotlin.directory/util/cache/hashtofile/hash-to-file-cache/0.0.11/hash-to-file-cache-0.0.11.pom
Downloading https://kotlin.directory/tools/kotlin/build/compile/interfaces/executionenvironment/tools-kotlin-build-compile-interfaces-executionenvironment/0.0.2/tools-kotlin-build-compile-interfaces-executionenvironment-0.0.2.pom
Downloaded https://kotlin.directory/community/kotlin/kompile/testrunner/bootstrap/community-kotlin-kompile-testrunner-bootstrap/0.0.16/community-kotlin-kompile-testrunner-bootstrap-0.0.16.pom
Downloading https://kotlin.directory/util/cache/hashtofile/hash-to-file-cache/0.0.11/hash-to-file-cache-0.0.11.pom.sha1
Downloaded https://kotlin.directory/io/get-coursier/coursier-cache_2.13/2.1.31-buffer2/coursier-cache_2.13-2.1.31-buffer2.pom
Downloading https://kotlin.directory/community/kotlin/kompile/testrunner/bootstrap/community-kotlin-kompile-testrunner-bootstrap/0.0.16/community-kotlin-kompile-testrunner-bootstrap-0.0.16.pom.sha1
Downloaded https://kotlin.directory/kompile/buildscript/kompile-buildscript/0.0.43/kompile-buildscript-0.0.43.pom
Downloading https://kotlin.directory/io/get-coursier/coursier-cache_2.13/2.1.31-buffer2/coursier-cache_2.13-2.1.31-buffer2.pom.sha1
Downloaded https://kotlin.directory/kompile/executionenvironment/kompile-executionenvironment/0.0.44/kompile-executionenvironment-0.0.44.pom
Downloading https://kotlin.directory/kompile/buildscript/kompile-buildscript/0.0.43/kompile-buildscript-0.0.43.pom.sha1
Failed to download https://kotlin.directory/io/get-coursier/coursier-cache_2.13/2.1.31-buffer2/coursier-cache_2.13-2.1.31-buffer2.pom.sha1
Downloading https://kotlin.directory/kompile/executionenvironment/kompile-executionenvironment/0.0.44/kompile-executionenvironment-0.0.44.pom.sha1
Downloaded https://kotlin.directory/kompile/manager/0.0.205/manager-0.0.205.pom
Downloading https://kotlin.directory/kompile/manager/0.0.205/manager-0.0.205.pom.sha1
Downloaded https://kotlin.directory/tools/kotlin/build/compile/interfaces/executionenvironment/tools-kotlin-build-compile-interfaces-executionenvironment/0.0.2/tools-kotlin-build-compile-interfaces-executionenvironment-0.0.2.pom
Downloading https://kotlin.directory/tools/kotlin/build/compile/interfaces/executionenvironment/tools-kotlin-build-compile-interfaces-executionenvironment/0.0.2/tools-kotlin-build-compile-interfaces-executionenvironment-0.0.2.pom.sha1
Downloaded https://kotlin.directory/community/kotlin/kompile/testrunner/bootstrap/community-kotlin-kompile-testrunner-bootstrap/0.0.16/community-kotlin-kompile-testrunner-bootstrap-0.0.16.pom.sha1
Downloaded https://kotlin.directory/util/cache/hashtofile/hash-to-file-cache/0.0.11/hash-to-file-cache-0.0.11.pom.sha1
Downloaded https://kotlin.directory/kompile/buildscript/kompile-buildscript/0.0.43/kompile-buildscript-0.0.43.pom.sha1
Downloaded https://kotlin.directory/kompile/manager/0.0.205/manager-0.0.205.pom.sha1
Downloaded https://kotlin.directory/kompile/executionenvironment/kompile-executionenvironment/0.0.44/kompile-executionenvironment-0.0.44.pom.sha1
Downloaded https://kotlin.directory/tools/kotlin/build/compile/interfaces/executionenvironment/tools-kotlin-build-compile-interfaces-executionenvironment/0.0.2/tools-kotlin-build-compile-interfaces-executionenvironment-0.0.2.pom.sha1
Downloading https://kotlin.directory/util/cache/hashtofile/hash-to-file-cache/0.0.11/hash-to-file-cache-0.0.11.jar
Downloading https://kotlin.directory/kompile/buildscript/kompile-buildscript/0.0.43/kompile-buildscript-0.0.43.jar
Downloading https://kotlin.directory/tools/kotlin/build/compile/interfaces/executionenvironment/tools-kotlin-build-compile-interfaces-executionenvironment/0.0.2/tools-kotlin-build-compile-interfaces-executionenvironment-0.0.2.jar
Downloading https://kotlin.directory/community/kotlin/kompile/testrunner/bootstrap/community-kotlin-kompile-testrunner-bootstrap/0.0.16/community-kotlin-kompile-testrunner-bootstrap-0.0.16.jar
Downloading https://kotlin.directory/buildtest/runner/buildtest-runner/0.0.123/buildtest-runner-0.0.123.jar
Downloading https://kotlin.directory/kompile/executionenvironment/kompile-executionenvironment/0.0.44/kompile-executionenvironment-0.0.44.jar
Downloaded https://kotlin.directory/tools/kotlin/build/compile/interfaces/executionenvironment/tools-kotlin-build-compile-interfaces-executionenvironment/0.0.2/tools-kotlin-build-compile-interfaces-executionenvironment-0.0.2.jar
Downloading https://kotlin.directory/io/get-coursier/coursier-cache_2.13/2.1.31-buffer2/coursier-cache_2.13-2.1.31-buffer2.jar
Downloaded https://kotlin.directory/util/cache/hashtofile/hash-to-file-cache/0.0.11/hash-to-file-cache-0.0.11.jar
Downloading https://kotlin.directory/kompile/manager/0.0.205/manager-0.0.205.jar
Downloaded https://kotlin.directory/community/kotlin/kompile/testrunner/bootstrap/community-kotlin-kompile-testrunner-bootstrap/0.0.16/community-kotlin-kompile-testrunner-bootstrap-0.0.16.jar
Downloading https://kotlin.directory/tools/kotlin/build/compile/interfaces/executionenvironment/tools-kotlin-build-compile-interfaces-executionenvironment/0.0.2/tools-kotlin-build-compile-interfaces-executionenvironment-0.0.2.jar.sha1
Downloaded https://kotlin.directory/kompile/executionenvironment/kompile-executionenvironment/0.0.44/kompile-executionenvironment-0.0.44.jar
Downloading https://kotlin.directory/util/cache/hashtofile/hash-to-file-cache/0.0.11/hash-to-file-cache-0.0.11.jar.sha1
Downloaded https://kotlin.directory/util/cache/hashtofile/hash-to-file-cache/0.0.11/hash-to-file-cache-0.0.11.jar.sha1
Downloading https://kotlin.directory/community/kotlin/kompile/testrunner/bootstrap/community-kotlin-kompile-testrunner-bootstrap/0.0.16/community-kotlin-kompile-testrunner-bootstrap-0.0.16.jar.sha1
Downloaded https://kotlin.directory/tools/kotlin/build/compile/interfaces/executionenvironment/tools-kotlin-build-compile-interfaces-executionenvironment/0.0.2/tools-kotlin-build-compile-interfaces-executionenvironment-0.0.2.jar.sha1
Downloaded https://kotlin.directory/kompile/buildscript/kompile-buildscript/0.0.43/kompile-buildscript-0.0.43.jar
Downloading https://kotlin.directory/kompile/executionenvironment/kompile-executionenvironment/0.0.44/kompile-executionenvironment-0.0.44.jar.sha1
Downloading https://kotlin.directory/kompile/buildscript/kompile-buildscript/0.0.43/kompile-buildscript-0.0.43.jar.sha1
Downloaded https://kotlin.directory/community/kotlin/kompile/testrunner/bootstrap/community-kotlin-kompile-testrunner-bootstrap/0.0.16/community-kotlin-kompile-testrunner-bootstrap-0.0.16.jar.sha1
Downloaded https://kotlin.directory/kompile/executionenvironment/kompile-executionenvironment/0.0.44/kompile-executionenvironment-0.0.44.jar.sha1
Downloaded https://kotlin.directory/kompile/buildscript/kompile-buildscript/0.0.43/kompile-buildscript-0.0.43.jar.sha1
Downloaded https://kotlin.directory/buildtest/runner/buildtest-runner/0.0.123/buildtest-runner-0.0.123.jar
Downloading https://kotlin.directory/buildtest/runner/buildtest-runner/0.0.123/buildtest-runner-0.0.123.jar.sha1
Downloaded https://kotlin.directory/buildtest/runner/buildtest-runner/0.0.123/buildtest-runner-0.0.123.jar.sha1
Downloaded https://kotlin.directory/io/get-coursier/coursier-cache_2.13/2.1.31-buffer2/coursier-cache_2.13-2.1.31-buffer2.jar
Downloading https://kotlin.directory/io/get-coursier/coursier-cache_2.13/2.1.31-buffer2/coursier-cache_2.13-2.1.31-buffer2.jar.sha1
Failed to download https://kotlin.directory/io/get-coursier/coursier-cache_2.13/2.1.31-buffer2/coursier-cache_2.13-2.1.31-buffer2.jar.sha1
Downloaded https://kotlin.directory/kompile/manager/0.0.205/manager-0.0.205.jar
Downloading https://kotlin.directory/kompile/manager/0.0.205/manager-0.0.205.jar.sha1
Downloaded https://kotlin.directory/kompile/manager/0.0.205/manager-0.0.205.jar.sha1
/tmp/qtcompile4602244996308329931/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile4602244996308329931/testEveryKnownExtensionIsServedWithItsContentType.kt:70:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile7641245662059404964/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile7641245662059404964/testConcurrentPublishesAndVisitsStayIntact.kt:83:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile6089613098546705163/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile6089613098546705163/testBrowserSendsDigestsAndLeavesAnUnknownCommitAlone.kt:239:57: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
                    assertContentEquals(bytes, java.net.URL("$base/s/$siteId/$path").readBytes(), "'$path' must be served as it was chosen")
                                                        ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile17191835669088297793/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile17191835669088297793/testStorageServiceRestartDoesNotRebuildTheResolver.kt:153:9: warning: the value 'first' assigned to 'var service: RunningService? defined in tinysitewui.test.testStorageServiceRestartDoesNotRebuildTheResolver' is never used
        service = first
        ^ The value 'first' assigned to 'var service: RunningService? defined in tinysitewui.test.testStorageServiceRestartDoesNotRebuildTheResolver' is never used [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile17191835669088297793/testStorageServiceRestartDoesNotRebuildTheResolver.kt:168:39: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
            val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                      ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile17191835669088297793/testStorageServiceRestartDoesNotRebuildTheResolver.kt:233:9: warning: the value 'null' assigned to 'var service: RunningService? defined in tinysitewui.test.testStorageServiceRestartDoesNotRebuildTheResolver' is never used
        service = null
        ^ The value 'null' assigned to 'var service: RunningService? defined in tinysitewui.test.testStorageServiceRestartDoesNotRebuildTheResolver' is never used [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile14431094138802559779/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile14431094138802559779/testBrowserPublishesAFolderAndOpensTheSite.kt:84:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile14431094138802559779/testBrowserPublishesAFolderAndOpensTheSite.kt:304:43: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
                val storedLong = java.net.URL("$base/s/$siteId/data/long.txt").openStream().use { it.readBytes() }
                                          ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile14431094138802559779/testBrowserPublishesAFolderAndOpensTheSite.kt:307:42: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
                assertEquals(0, java.net.URL("$base/s/$siteId/empty.txt").openStream().use { it.readBytes() }.size)
                                         ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile14431094138802559779/testBrowserPublishesAFolderAndOpensTheSite.kt:308:50: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
                assertEquals(indexHtml, java.net.URL("$base/s/$siteId/index.html").openStream().use { it.readBytes() }.toString(Charsets.UTF_8))
                                                 ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile3212149969519097590/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile3212149969519097590/testLostCommitAnswerIsConfirmedNotSentAgain.kt:197:39: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
            val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                      ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Checking cache for key: d0d8f1196969ff20bf427c605ccb0f9c93e1e66bf70ea5480e336191dc36b881
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Cache MISS for key: d0d8f1196969ff20bf427c605ccb0f9c93e1e66bf70ea5480e336191dc36b881, executing calculator
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Checking cache for key: 495cb721aba4461607dddc317f8644806ef9eb45e2e35ac8b6f97a303b459d90
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Cache MISS for key: 495cb721aba4461607dddc317f8644806ef9eb45e2e35ac8b6f97a303b459d90, executing calculator
 [BuildScriptStderrEffect from Main.kt:1547]
Diagnostic: Variable 'proxyToClose' initializer is redundant [DiagnosticReportedEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Stored result in cache for key: 495cb721aba4461607dddc317f8644806ef9eb45e2e35ac8b6f97a303b459d90
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Stored result in cache for key: d0d8f1196969ff20bf427c605ccb0f9c93e1e66bf70ea5480e336191dc36b881
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Checking cache for key: e1d780e212b86f8201f576646ea384cb47420bd741d99367d2655c05a4474f30
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Cache MISS for key: e1d780e212b86f8201f576646ea384cb47420bd741d99367d2655c05a4474f30, executing calculator
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Checking cache for key: 069b56278dfbc6e73fabcb754018b5ea30a75b529e3d700fe7157b896b75b9c9
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Cache MISS for key: 069b56278dfbc6e73fabcb754018b5ea30a75b529e3d700fe7157b896b75b9c9, executing calculator
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Stored result in cache for key: 069b56278dfbc6e73fabcb754018b5ea30a75b529e3d700fe7157b896b75b9c9
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Stored result in cache for key: e1d780e212b86f8201f576646ea384cb47420bd741d99367d2655c05a4474f30
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Checking cache for key: c231c43cf0bef6a3ef4667e29f2c5d9c36f5d543c352c54af838bb0c1dd23217
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Cache MISS for key: c231c43cf0bef6a3ef4667e29f2c5d9c36f5d543c352c54af838bb0c1dd23217, executing calculator
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: buildjar outputFile /root/.buildcache/persistent-scratchspace/scratch-7003740660697431645/a81d9a98-a8c2-4566-82ff-86ccd5162818/file.jar 4b76b68a01490eb75dc8a0946fc674f674ee2206c3c2d59a0cb9de6fddf355e9 [unhandled JarBuiltEffect from JvmBuildRules.kt:764]
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Stored result in cache for key: c231c43cf0bef6a3ef4667e29f2c5d9c36f5d543c352c54af838bb0c1dd23217
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Checking cache for key: 5c3cbe1ab2b5f36c0b46dda2f7184280cc732768a83987c76c09db47cbef239c
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Cache MISS for key: 5c3cbe1ab2b5f36c0b46dda2f7184280cc732768a83987c76c09db47cbef239c, executing calculator
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Checking cache for key: b0ff4b02fd1bc0ea46cf6e2b65ce5593c213fa2780e7db587a62392d616ad573
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Cache MISS for key: b0ff4b02fd1bc0ea46cf6e2b65ce5593c213fa2780e7db587a62392d616ad573, executing calculator
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Stored result in cache for key: b0ff4b02fd1bc0ea46cf6e2b65ce5593c213fa2780e7db587a62392d616ad573
 [BuildScriptStderrEffect from Main.kt:1547]
Build-script stderr: [BuildscriptRunner] Stored result in cache for key: 5c3cbe1ab2b5f36c0b46dda2f7184280cc732768a83987c76c09db47cbef239c
 [BuildScriptStderrEffect from Main.kt:1547]
/tmp/qtcompile8449007628508038394/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile8449007628508038394/testBrowserRetryAfterAFailedPublishSendsOnlyTheRest.kt:86:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile8449007628508038394/testBrowserRetryAfterAFailedPublishSendsOnlyTheRest.kt:233:9: warning: variable 'siteBytes' is never used
    val siteBytes = (indexHtml + siteCss + logoSvg + appJs + longText).toByteArray(Charsets.UTF_8).size
        ^ Variable 'siteBytes' is never used [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile17293406449333965555/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile17293406449333965555/testTimedOutStorageCallDoesNotFailConcurrentRequests.kt:205:39: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
            val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                      ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
Control socket idle for 60000ms with no RPC from the child; child process is still alive, so continuing to wait (the independent monotonic per-test watchdog still bounds the run)
Control socket idle for 60000ms with no RPC from the child; child process is still alive, so continuing to wait (the independent monotonic per-test watchdog still bounds the run)
[2026-10-08 17:55:31] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testTimesAndSizesAreWordedByMagnitude.kts] on droplet 0: its reservation of 2013 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 5847 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:55:31] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testPublishedSiteServesIndexAndNestedAssets.kts] on droplet 0: its reservation of 2063 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 7360 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:55:31] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testHomeListsOnlyPublishedSites.kts] on droplet 0: its reservation of 1992 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 8646 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:55:31] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testRangeRequestsReturnExactlyTheBytesAsked.kts] on droplet 0: its reservation of 1917 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 8646 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:55:31] [dispatch] lease_issued: Issued lease 8dc08a0a-99f4-4c1a-9cbd-4dd0fc8e7d8a-c69d3755-aed76536-63e6-4c9a-8994-3b40ac274457-L1 with 4 test(s) [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testTimesAndSizesAreWordedByMagnitude.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testPublishedSiteServesIndexAndNestedAssets.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testHomeListsOnlyPublishedSites.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testRangeRequestsReturnExactlyTheBytesAsked.kts] to droplet 0 (pull-based handout from shared queue; 6 unit(s) remaining). Memory admission: predicted peak 521859072 bytes; resident predicted peak 2306543616 of 3221225472 bytes; 914681856 bytes remaining budget
[2026-10-08 17:55:57] [dispatch] re_lease: In-run flake re-lease: test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testStorageServiceRestartDoesNotRebuildTheResolver.kts] attempt 8dc08a0a-99f4-4c1a-9cbd-4dd0fc8e7d8a-c69d3755-aed76536-63e6-4c9a-8994-3b40ac274457-A1 FAILED on droplet 0 (history ordinal 1; 1 failures of budget 3; 0 live, target 2); queued retry top-up because live attempts are below target, preferring a droplet other than the one(s) it has failed on [0]
/tmp/qtcompile-group12424961789330395937/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile14254381387153382996/testPublishedSiteServesIndexAndNestedAssets.kt:72:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile2770251926586916285/testTimesAndSizesAreWordedByMagnitude.kt:69:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
Control socket idle for 60000ms with no RPC from the child; child process is still alive, so continuing to wait (the independent monotonic per-test watchdog still bounds the run)
Control socket idle for 60000ms with no RPC from the child; child process is still alive, so continuing to wait (the independent monotonic per-test watchdog still bounds the run)
Control socket idle for 60000ms with no RPC from the child; child process is still alive, so continuing to wait (the independent monotonic per-test watchdog still bounds the run)
/tmp/qtcompile-group575953370742484711/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile11973934144519435005/testHomeListsOnlyPublishedSites.kt:69:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile284842407296583197/testRangeRequestsReturnExactlyTheBytesAsked.kt:72:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
[2026-10-08 17:57:21] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testSiteStopsBeingServedWhenItExpires.kts] on droplet 0: its reservation of 1762 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 7062 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:57:21] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testFileThatShrinksWhileBeingServedIsCutOffNotPadded.kts] on droplet 0: its reservation of 1785 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 8324 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:57:21] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testCommitThatMisstatesItsSessionIsRefused.kts] on droplet 0: its reservation of 1726 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 8347 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:57:21] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testUnreachableStorageIsNotReportedAsMissing.kts] on droplet 0: its reservation of 1778 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 8347 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:57:21] [dispatch] lease_issued: Issued lease 8dc08a0a-99f4-4c1a-9cbd-4dd0fc8e7d8a-c69d3755-aed76536-63e6-4c9a-8994-3b40ac274457-L2 with 4 test(s) [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testSiteStopsBeingServedWhenItExpires.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testFileThatShrinksWhileBeingServedIsCutOffNotPadded.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testCommitThatMisstatesItsSessionIsRefused.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testUnreachableStorageIsNotReportedAsMissing.kts] to droplet 0 (pull-based handout from shared queue; 3 unit(s) remaining). Memory admission: predicted peak 479027200 bytes; resident predicted peak 2197946368 of 3221225472 bytes; 1023279104 bytes remaining budget
[2026-10-08 17:57:31] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testMisusedUploadsAreRefusedAndStoreNothing.kts] on droplet 0: its reservation of 1753 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 7051 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:57:31] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testUploadRefusesPathsOutsideTheSite.kts] on droplet 0: its reservation of 1655 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 7078 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:57:31] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testStorageServiceRestartDoesNotRebuildTheResolver.kts] on droplet 0: its reservation of 981 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 7078 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:57:31] [dispatch] lease_issued: Issued lease 8dc08a0a-99f4-4c1a-9cbd-4dd0fc8e7d8a-c69d3755-aed76536-63e6-4c9a-8994-3b40ac274457-L3 with 3 test(s) [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testMisusedUploadsAreRefusedAndStoreNothing.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testUploadRefusesPathsOutsideTheSite.kts, CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testStorageServiceRestartDoesNotRebuildTheResolver.kts] to droplet 0 (pull-based handout from shared queue; 1 unit(s) remaining). Memory admission: predicted peak 419438592 bytes; resident predicted peak 898465792 of 3221225472 bytes; 2322759680 bytes remaining budget. Retry top-up for [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testStorageServiceRestartDoesNotRebuildTheResolver.kts]: 1 failures of budget 3; 1 live, target 2; issued because an eligible failure left live attempts below target
/tmp/qtcompile-group2854870280019883423/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile1245454713589439768/testFileThatShrinksWhileBeingServedIsCutOffNotPadded.kt:74:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile1245454713589439768/testFileThatShrinksWhileBeingServedIsCutOffNotPadded.kt:211:39: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
            val connection = java.net.URL("$base/s/$siteId/large.bin").openConnection() as java.net.HttpURLConnection
                                      ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile1640875390914025737/testSiteStopsBeingServedWhenItExpires.kt:69:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile-group2825987099861880282/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile13686187359986386553/testCommitThatMisstatesItsSessionIsRefused.kt:70:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile6097317099806467785/testUnreachableStorageIsNotReportedAsMissing.kt:74:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile-group7339964120806196799/TestRunner.kt:82:49: warning: 'getter for id: Long' is deprecated. Deprecated in Java
                    .append(" #").append(thread.id)
                                                ^ 'getter for id: Long' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile17296945923731723074/testUploadRefusesPathsOutsideTheSite.kt:69:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
/tmp/qtcompile2257146612161298336/testMisusedUploadsAreRefusedAndStoreNothing.kt:70:35: warning: 'constructor URL(String!)' is deprecated. Deprecated in Java
        val connection = java.net.URL(url).openConnection() as java.net.HttpURLConnection
                                  ^ 'constructor URL(String!)' is deprecated. Deprecated in Java [DiagnosticEffect from Main.kt:1547]
[2026-10-08 17:57:56] [dispatch] cpu_skip_advisory: CPU admission would have skipped test [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testStorageServiceRestartDoesNotRebuildTheResolver.kts] on droplet 0: its reservation of 981 millicores would raise the worst-case concurrent CPU of the droplet's 4 lanes above its 2000 millicores (already 6151 millicores reserved by resident and selected tests); it was admitted because CPU admission is in OBSERVE mode
[2026-10-08 17:57:56] [dispatch] lease_issued: Issued lease 8dc08a0a-99f4-4c1a-9cbd-4dd0fc8e7d8a-c69d3755-aed76536-63e6-4c9a-8994-3b40ac274457-L4 with 1 test(s) [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testStorageServiceRestartDoesNotRebuildTheResolver.kts] to droplet 0 (pull-based handout from shared queue; 0 unit(s) remaining). Memory admission: predicted peak 192765952 bytes; resident predicted peak 732069888 of 3221225472 bytes; 2489155584 bytes remaining budget. Retry top-up for [CodexCoder21Organization-TinySiteWui-31b10f24ef51c4e5cbbbecc5c17afa1aaf2491e4/tests/testStorageServiceRestartDoesNotRebuildTheResolver.kts]: 1 failures of budget 3; 2 live, target 2; issued because an eligible failure left live attempts below target
Control socket idle for 60000ms with no RPC from the child; child process is still alive, so continuing to wait (the independent monotonic per-test watchdog still bounds the run)
[2026-10-08 17:58:56] [dispatch] Every test in run c69d3755 has an authoritative result; stopping shard(s) 0 whose runners are executing only superseded attempts (any late result they would report is superseded) and releasing their droplets
[2026-10-08 17:58:56] [dispatch] drain: Drain: shared queue has no unowned work, droplet 0 has no outstanding leases or targeted recovery/acceleration assignment
[2026-10-08 17:58:57] Stopped following this shard's runner: every test has an authoritative result and its remaining work was superseded (the stop surfaced as java.lang.IllegalStateException: SSH session is not connected. Call connect() first.)
[2026-10-08 17:58:57] Dynamic dispatch degradation: 1 failed-test re-lease(s) within the run (see dispatch_decision events for details)
[2026-10-08 17:58:57] Build+test complete: 18 passed, 0 failed, 18 total
[2026-10-08 17:58:57] Build finished with status: COMPLETED
[perftest-dispatch] No @PerformanceTest-annotated tests found in workspace.
[2026-10-08 17:58:58] Destroying droplet...
[2026-10-08 17:58:58] Droplet enqueued for deletion