Skip to content

Commit

Permalink
Provide more information when waiting for notification times out (#5282)
Browse files Browse the repository at this point in the history
### Description
Provide more information when waiting for notification times out, which
will help debug unstable tests

### How has this been tested?
Change to testing

<small>By submitting this pull request, I confirm that my contribution
is made under the terms of the [MIT
license](https://github.com/dafny-lang/dafny/blob/master/LICENSE.txt).</small>
  • Loading branch information
keyboardDrummer authored Apr 1, 2024
1 parent 690f1f2 commit 5babf7c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ protected async Task<FileVerificationStatus> WaitUntilAllStatusAreCompleted(Text
bool allowStale = false) {
cancellationToken ??= CancellationToken;

if ((!await WaitUntilResolutionFinished(documentId, cancellationToken))) {
if ((!await WaitUntilResolutionFinished(documentId, cancellationToken.Value))) {
return null;
}

Expand All @@ -198,11 +198,13 @@ bool FinishedStatus(NamedVerifiableStatus method) {
}
}

public async Task<bool> WaitUntilResolutionFinished(TextDocumentItem documentId, CancellationToken? cancellationToken) {
public async Task<bool> WaitUntilResolutionFinished(TextDocumentItem documentId,
CancellationToken cancellationToken = default) {

CompilationStatusParams compilationStatusParams = compilationStatusReceiver.GetLast(s => s.Uri == documentId.Uri);
while (compilationStatusParams == null || compilationStatusParams.Version != documentId.Version || compilationStatusParams.Uri != documentId.Uri ||
compilationStatusParams.Status is CompilationStatus.Parsing or CompilationStatus.ResolutionStarted) {
compilationStatusParams = await compilationStatusReceiver.AwaitNextNotificationAsync(cancellationToken.Value);
compilationStatusParams = await compilationStatusReceiver.AwaitNextNotificationAsync(cancellationToken);
}

return compilationStatusParams.Status == CompilationStatus.ResolutionSucceeded;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,15 @@ public async Task<TNotification> AwaitNextNotificationAsync(CancellationToken ca
try {
await availableNotifications.WaitAsync(cancellationToken);
} catch (OperationCanceledException) {
logger.LogInformation($"Waited for {(DateTime.Now - start).Seconds} seconds");
var last = History.Any() ? History[-1].Stringify() : "none";
logger.LogInformation($"Waited for {(DateTime.Now - start).Seconds} seconds for new notification.\n" +
$"Last received notification was {last}");
throw;
}
if (notifications.TryDequeue(out var notification)) {
return notification;
}
throw new System.InvalidOperationException("got a signal for a received notification but it was not present in the queue");
throw new InvalidOperationException("got a signal for a received notification but it was not present in the queue");
}
}
}

0 comments on commit 5babf7c

Please sign in to comment.