Skip to content

Commit

Permalink
Hotfix 4.8.1-Fix for dotnet-isolated function app debugging hang issue (
Browse files Browse the repository at this point in the history
#8599)

* Fix for dotnet-isolated function app debugging hang issue (#8596)

* Deleted the code which removed the "azfuncjsonlog:" prefix for log messages meant for tooling as core tools rely on that prefix.

* Test improvements

* Added release notes

* Bump version to 481

* Fixed release notes
  • Loading branch information
kshyju authored Aug 3, 2022
1 parent efbb61c commit 45624d1
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 17 deletions.
2 changes: 1 addition & 1 deletion build/common.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<LangVersion>latest</LangVersion>
<MajorVersion>4</MajorVersion>
<MinorVersion>8</MinorVersion>
<PatchVersion>0</PatchVersion>
<PatchVersion>1</PatchVersion>
<BuildNumber Condition="'$(BuildNumber)' == '' ">0</BuildNumber>
<PreviewVersion></PreviewVersion>

Expand Down
6 changes: 1 addition & 5 deletions release_notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,4 @@
<!-- Please add your release notes in the following format:
- My change description (#PR)
-->

- Updated Java Worker Version to [2.3.1](https://github.com/Azure/azure-functions-java-worker/releases/tag/2.3.1)

**Release sprint:** Sprint 123
[ [bugs](https://github.com/Azure/azure-functions-host/issues?q=is%3Aissue+milestone%3A%22Functions+Sprint+123%22+label%3Abug+is%3Aclosed) | [features](https://github.com/Azure/azure-functions-host/issues?q=is%3Aissue+milestone%3A%22Functions+Sprint+123%22+label%3Afeature+is%3Aclosed) ]
- Fix the bug where debugging of dotnet isolated function apps hangs in visual studio (#8596)
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,5 @@ public static bool IsToolingConsoleJsonLogEntry(ConsoleLog consoleLog)
{
return consoleLog.Message.StartsWith(WorkerConstants.ToolingConsoleLogPrefix, StringComparison.OrdinalIgnoreCase);
}

public static string RemoveToolingConsoleJsonLogPrefix(string msg)
{
return Regex.Replace(msg, WorkerConstants.ToolingConsoleLogPrefix, string.Empty, RegexOptions.IgnoreCase);
}
}
}
4 changes: 2 additions & 2 deletions src/WebJobs.Script/Workers/WorkerConsoleLogService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ internal async Task ProcessLogs()

if (WorkerProcessUtilities.IsToolingConsoleJsonLogEntry(consoleLog))
{
_toolingConsoleJsonLoggerLazy.Value.Log(consoleLog.Level,
WorkerProcessUtilities.RemoveToolingConsoleJsonLogPrefix(consoleLog.Message));
// log with the message prefix as coretools expects it.
_toolingConsoleJsonLoggerLazy.Value.Log(consoleLog.Level, consoleLog.Message);
}
else
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public async Task WorkerConsoleLogService_ConsoleLogs_LogLevel_Expected(bool use
workerProcess.ParseErrorMessageAndLog("LanguageWorkerConsoleLog[Test Worker Message No keyword]");
workerProcess.ParseErrorMessageAndLog("LanguageWorkerConsoleLog[Test Worker Error Message]");
workerProcess.ParseErrorMessageAndLog("LanguageWorkerConsoleLog[Test Worker Warning Message]");
workerProcess.ParseErrorMessageAndLog("azfuncjsonlog:Azure Functions .NET Worker (PID: 4) initialized in debug mode.");
workerProcess.ParseErrorMessageAndLog("azfuncjsonlog:{ 'name':'dotnet-worker-startup', 'workerProcessId' : 321 }");

// Act
_ = _workerConsoleLogService.ProcessLogs().ContinueWith(t => { });
Expand All @@ -73,22 +73,23 @@ public async Task WorkerConsoleLogService_ConsoleLogs_LogLevel_Expected(bool use
{
VerifyLogLevel(userLogs, "Test Message No keyword", LogLevel.Error);
VerifyLogLevel(systemLogs, "[Test Worker Message No keyword]", LogLevel.Error);
VerifyLogLevel(toolingConsoleLogs, "Azure Functions .NET Worker (PID: 4) initialized in debug mode.", LogLevel.Error);
VerifyLogLevel(toolingConsoleLogs, "azfuncjsonlog:{ 'name':'dotnet-worker-startup', 'workerProcessId' : 321 }", LogLevel.Error);
}
else
{
VerifyLogLevel(userLogs, "Test Message No keyword", LogLevel.Information);
VerifyLogLevel(systemLogs, "[Test Worker Message No keyword]", LogLevel.Information);
VerifyLogLevel(toolingConsoleLogs, "Azure Functions .NET Worker (PID: 4) initialized in debug mode.", LogLevel.Information);
VerifyLogLevel(toolingConsoleLogs, "azfuncjsonlog:{ 'name':'dotnet-worker-startup', 'workerProcessId' : 321 }", LogLevel.Information);
}

Assert.True(toolingConsoleLogs.All(l => l.FormattedMessage.StartsWith(WorkerConstants.ToolingConsoleLogPrefix)));
}

private static void VerifyLogLevel(IList<LogMessage> allLogs, string msg, LogLevel expectedLevel)
{
var message = allLogs.FirstOrDefault(l => l.FormattedMessage.Contains(msg));
Assert.NotNull(message);
Assert.DoesNotContain(WorkerConstants.LanguageWorkerConsoleLogPrefix, message.FormattedMessage);
Assert.DoesNotContain(WorkerConstants.ToolingConsoleLogPrefix, message.FormattedMessage);
Assert.Equal(expectedLevel, message.Level);
}
}
Expand Down

0 comments on commit 45624d1

Please sign in to comment.