'dotnet test' sometimes causes terminal to stop echoing after completion (ubuntu)

From @beevik on Saturday, December 21, 2019 7:20:52 PM
When running dotnet test on ubuntu, the terminal often stops echoing input after the command completes. It's not 100%. Sometimes echoing remains on.  I'm using the xunit testing framework.
Here are the results of typing stty -a after the terminal stops echoing:
speed 38400 baud; rows 40; columns 132; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S;
susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig -icanon -iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

As you can see, echo is off (-echo).
This does not appear to be a bug in xunit, as someone has reported a similar issue when using expecto instead.
Ubuntu 18.04.3
.NET Core 3.1
xunit 2.4.1
Copied from original issue: dotnet/sdk#4090

From @rmunn on Monday, December 23, 2019 8:18:21 PM
I'm the one who reported that issue with Expecto. I also have a vague memory of seeing this pop up with other dotnet foo commands such as dotnet build, but I don't have a solid example since I'm away from my desk for the holidays. Once I get a solid example I'll mention it here.
BTW, for anyone else who experiences this, you can restore your terminal to normal functionality after this issue triggers by typing stty echo followed by Enter.

From @beevik on Tuesday, December 24, 2019 11:10:15 PM
An additional data point.  I encountered the same bug running dotnet test on MacOS.

Also experiencing this very regularly on Ubuntu 18.04.4 LTS, .NET Core 3.1.101

Anyone has any theory why this would be? I saw some escape codes being output into my input (ehm after test run I had some characters in the prompt that I did not type).
@beevik I actually can't see that from the prompt output, could you help me understand what I am seeing when the behavior is incorrect, and what I should be seeing when the behavior is correct, please?

I'm also experiencing this with .NET Core 3.1.102, Ubuntu 18.04.4 LTS.

This is an immense pain in the butt!
NET Core 3.1.101, MacOS 10.14.6, just using dotnet command on built-in terminal

@cniles I understand, can you help me replicate it, and possibly look at the issue description and tell me what I am looking for there?

I just ran into this. Definitely annoying! After reading through this and related issues, I tried to determine minimal reproducible steps.
Environment

Windows 10
WSL with Ubuntu 18.04
.NET SDK version 3.1.100 in WSL
Using both the Ubuntu and the Windows Terminal application (reproduced in both)

Findings

I cannot reproduce when running dotnet test from within a single test application's directory.
I can regularly reproduce when running dotnet test from a directory with a solution file and multiple projects (mix of test and non-test projects, all added to the .sln file).
When trying to debug output (via something like piping to sed, e.g. dotnet test | sed -n 'l'), I'm not seeing any immediately incriminating control characters.
I have, however, noticed output lines being interleaved or being outputted in different order, leading me to a hunch that there's some manner of race condition with terminal output causing the symptoms.

Reproduction
From the command line, I narrowed everything down to being able to run the following commands to reproduce the issue fairly reliably:
cd TestTerminalIssues
dotnet new xunit --name Project1
dotnet new xunit --name Project2
dotnet new classlib --name Project3
dotnet new sln
dotnet sln add Project1 Project2 Project3
dotnet build
dotnet test

Run dotnet test until the terminal stops behaving as expected. It usually only takes me two or three attempts before the terminal "breaks."
Will try to dig in further, but I hope this helps, in the meantime.

I could not reliably repro this with your repro but it definitely pushed me into the right direction. Or hopefully I am seeing the same thing as you. I can only see it with xUnit. When I run two projects at the same time and it runs for more than 1s so that the progress kicks in, it will lock down silently when one is output errors and the other one is reporting also errors.
It will also lock down when the project reports success and it will print ^[[33;1R into the console. Does that look familiar?
  Stack Trace:
     at Project2.UnitTest1.Test3() in /mnt/c/Projects/temp/TestTerminalIssues/Project2/UnitTest1.cs:line 31

Test Run Successful.
Total tests: 1
     Passed: 1
 Total time: 3.2791 Seconds
^[[33;1R

It does the same thing always.
using System;
using Xunit;

namespace Project1
{
    public class UnitTest1
    {
        [Fact]
        public void Test1()
        {
            System.Threading.Thread.Sleep(1500);
        }
    }
}

using System;
using Xunit;

namespace Project2
{
    public class UnitTest1
    {
        [Fact]
        public void Test1()
        {
            System.Threading.Thread.Sleep(100);
            Assert.Equal(1, 2);
        }

        [Fact]
        public void Test2()
        {
            System.Threading.Thread.Sleep(100);
            Assert.Equal(1, 2);
        }

        // ... etc. until 50
    }
}

TestTerminalIssues.zip

Wow, that was interesting. Not the same symptoms I was seeing, though. I ran dotnet test against the solution in your attached zip and definitely saw some strange results, but I was able to get the terminal to go back to normal after a lot of enter presses.
The symptoms I was seeing when I reproduced were:

After running dotnet test, I'd press the Up arrow key to re-run dotnet test. dotnet test wouldn't appear in the terminal.
In the same scenario, when reproduced, typing into the terminal would not echo (e.g. typing reset would not show reset in the terminal, but pressing enter afterwards would execute the command).
In the same scenario, pressing enter without a command would drop another prompt on the same line.

I've reproduced using the project I created with the commands from my previous note and attached all the console output for you to see the symptoms. I followed a pattern, so you can see what happened:

Run dotnet test
After command completes, I press enter 3 times.
I then press the up arrow to repeat dotnet test and press enter to run the command again.

You'll see at line 162 in the output txt file that all the prompts end up on the same line and you won't see dotnet test, even though the command is executed.
output-fail-line-162.txt

@Jodacola Sorry I kept the assertion commented out in the test project. In my project please go to the project with a single test and uncomment the assertion.
That will either get the terminal to lock up, and it can only be revived by ctl+c, or will put the cursor in the middle of the screen, or will output ^[[33;1R and can be revived by pressing and holding enter, but then it will almost always hit the same  ^[[33;1R issue, so I have to start a new session to get the other problems.
From what you describe you are hitting one of these issues

Changing my project to output errors from both (copying the UnitTest1.cs from the one that has a lot of tests to both projects) I can hit the same issue as you did reliably.

Nice! Yes, when uncommenting the assertion, I was able to reproduce the same issue with your project.
When copying Project2/UnitTest1.cs to Project1, I was able to reproduce even more reliably (though not every single time).
I'm running into all three issues you described. With my own, I only ever ran into the one I exhibited with the output file I previously attached.

Been toying with this, for a while now, it has definitely something to do with console colors and moving the cursor. I have small toy app that I will push to travis to see what it will do.

Pushed original repro to the travis build and it got stuck. Will try to replace the progress with another that does not move the cursor, hopefully that will fix it. Then we can talk about how it looks.

https://github.com/microsoft/vstest/compare/master...nohwnd:non-cursor-progress here is my draft for non cursor progress, but somehow it lost the ability to use color in travis but works locally.  I tried it without the locks, and with outputting newline after each line, but still nothing...

Thank you for the research, @nohwnd! I pulled down your repos and branches and have been playing around with things.
Of note: before playing with ProgressToy and its two branches, I had installed the latest version of the .NET Core SDK in my Ubuntu WSL environment. This caused dotnet test to start using version 16.5.0 of the tool when running. More on that in a second.

 Confusing, because I had no problem causing all kinds of issues before...
I went back to the original little repro project I had created. I also couldn't reproduce. I start thinking I'm going crazy...
At this point, I realize that, after I updated to the latest SDK (3.1.201), dotnet test is using Test Execution Command Line Tool version 16.5.0.
I then looked at your screenshot in https://github.com/microsoft/vstest/issues/2282#issuecomment-607124334 and realized you were using 16.3.0, which is also what I was using when reproducing the issue.
I then run dotnet test -p:VSTestConsolePath="/usr/share/dotnet/sdk/3.0.101/vstest.console.dll" against ProjectToy@original-repro and am able to reproduce again (because that uses 16.3.0 in my environment).

All this information is to say is that upon using 16.5.0 of the test execution tool, I cannot reproduce, even with the original repro projects.
Could you take a look and see if I'm missing anything here? This just might already be fixed in the latest version of the tool shipping with the latest SDK (I've confirmed 16.5.0 is packaged with 3.1.200 and 3.1.201)!

@Jodacola - Running the Microsoft (R) Test Execution Command Line Tool Version 16.5.0 under Ubuntu (NOT the Ubuntu WSL environment), I was able to reproduce this issue again, by cloning https://github.com/commandlineparser/commandline/ and running dotnet test a few times. The third run triggered the issue: my typed input stopped being echoed to the terminal until I ran stty echo to turn the echo flag back on.
Again, that was with version 16.5.0 of the text execution tool, running under .NET Core SDK 3.1.201.

Thanks, @rmunn - fired up an Ubuntu 18.04 VM in Hyper-V, cloned the commandline repository, ran dotnet test with 16.5.0 of the tool and .NET Core SDK 3.1.201 and reproduced. Going to play around some more.

@nohwnd @Jodacola have you tried play-around with "script" command?
It is spawning new "subshell" session from which it is preserving all output bytes, which appears on it's "insides".
http://man7.org/linux/man-pages/man1/script.1.html

I can see, that the output has many:
ESC[?1hESC=
Which basing on http://ascii-table.com/ansi-escape-sequences-vt-100.php translates to:

Set cursor key to application // whatever that means
Set alternate keypad mode // whatever that means

I was looking for what kind of thing can adjust options just like "stty" command, ale found out, that a library leads to so called "termios.h"
After searching all possible dotnet related source code I found it only in dotnet/runtime:
https://github.com/dotnet/runtime/search?q=termios&unscoped_q=termios

Looking through the pal_console.c code, I noticed some interesting code interactions:

The ConfigureTerminal function unsets the ECHO flag if its forChild parameter is false. (If forChild is true, the ECHO flag is untouched).
There's also a SystemNative_InitializeConsoleBeforeRead function, which calls ConfigureTerminal with forChild=false.
In ConsolePal.Unix.cs, the TryGetCursorPosition method tries to return a cached value, but if it can't, it uses the appropriate terminal escape sequence to query the current cursor position. This is a complicated process because the terminal sends back its answer by injecting characters into the terminal's input buffer, so TryGetCursorPosition calls SystemNative_InitializeConsoleBeforeRead to make sure that the escape characters it's about to receive aren't echoed to the screen.
In ConsolePal.Unix.cs, the CursorLeft and CursorTop properties call TryGetCursorPosition, which means that the first time they're called, the ECHO flag on the terminal will end up unset.
The ProgressIndicator class in vstest uses CursorLeft and CursorTop to display its progress indicator (three dots that keep cycling through ., .., and ... states).
In Process.Unix.cs, an int counter is used to keep track of how many child processes are using the terminal. When it's non-zero, ConfigureTerminal is called with forChild=true. When it hits zero, ConfigureTerminal is called with forChild=false.
Also in Process.Unix.cs, the EnsureInitialized method calls InitializeTerminalAndSignalHandling() which eventually calls into pal_console.c; what it does is save the current terminal settings (acquired at the moment InitializeTerminalAndSignalHandling is called) in a global variable, then register an atexit() handler to restore those terminal settings when the process exits.

So what I think might be happening could be something like this interaction between all that code:

The dotnet test process starts up, and saves the current state of the terminal (including whether the echo flag is on or off).
In some test runners, such as xunit or Expecto, tests run in parallel by default. If so, multiple threads are probably created for this.
If the various unit tests running in those threads use Process.Start or similar calls, multiple child processes might be created that each are saving and restoring the terminal state.
If the order of events goes like this, the bug might be triggered:

dotnet test starts up
Several child processes are started to run various tests in parallel
The ProgressIndicator class is initialized and starts writing its progress marker dots to the screen, one per second
At least one child process finishes just before ProgressIndicator writes its third dot to the screen
ProgressIndicator writes its third dot, which causes it to want to remove three dots. It accesses CursorLeft in order to do so.
This causes TryGetCursorPosition to set echo=false in the terminal settings
Another child process starts up very soon afterwards, and it gets echo=false in the terminal settings that it stores in its global variable
When that child process exits, it will restore the terminal to echo=false, so any subsequent child processes that start after that point will pick up echo=false as the settings they should restore
If the last child process that exits was one that had picked up echo=false, then it restores those terminal settings right before dotnet test exits, and so the user is left with a terminal that doesn't echo.

A complicated race condition, but all it requires is that some child processes complete before three seconds are up, which is not hard to have happen.

@nohwnd @Jodacola have you tried play-around with "script" command?

I did not, I am not that familiar with fixing issues on linux terminal 🙂  Thanks for the suggestion.
@rmunn wow! 👏👏👏
That seems very plausible and very close to what we've been observing. To aid you with your investitgation, what happens process-wise in the repro above is that:

dotnet test kicks off build for the two test projects.

build builds the projects in parallel and then starts two vstest.console processes in parallel

( each vstest.console starts a test host, testhost only writes back through socket, but not to console, so forget about it )

in each vstest.console a timer starts that will write progress indicator to console after 1s

in each console we start getting back output from testhost and writing it to screen.

at this point we have 4 threads in 2 processes that are trying to write to the console

we lock on most of the output, and Console imho does as well, so we can only do 1 console action per process at 1 time.

I totally believe that what you described is at least part of the answer, but can you share your opinion on these?

v. could be caused by clearing the progress indicator from the screen after writing test results rather than 3rd dot? I am asking because the test summary almost always stopped the execution in the same way. There are different processes running, so I don't believe the timing was the same. I did no see anything special about the summary. I am guessing that there is a call to Clear on the ProgressIndicator when we are done running, that makes this easily reproducible? I saw it happen more consistently with xunit because it writes into console way more than mstest, and in smaller chunks.

in the repro I did not see it trigger when colors were disabled. In the repro where both sides fail it locks up silently, but with the long running test passing (in my repro the assertion is already commented out, so it behaves this way by default), outputs the same characters everytime. Can you explain that, and what the collision is?

@nohwnd To answer your two questions:
The ProgressIndicator.Clear() method accesses the Console.CursorTop property (via a helper class, but that helper class accesses Console.CursorTop), so a Clear() can also trigger this bug. Whichever of CursorLeft (accessed by printing the third dot) and CursorTop (accessed by Clear()) is first accessed will cause TryGetCursorPosition to be called, which will end up setting echo=false on the terminal. (The second and subsequent calls to CursorTop and CursorLeft will cause TryGetCursorPosition to return a cached value so will not set echo=false a second time).
I don't know which of your repro branches is the one with colors disabled, so I'm having a bit of difficulty answering the second question. But scrolling back, I see that you've had cases where ^[[33;1R gets printed to the console. That is definitely related to this bug, because that's the escape sequence that the terminal injects into the input to respond to a cursor-position request. (Specifically, the escape sequence is <ESC> which renders as ^[, followed by [{row};{col}R. So when you see ^[[33;1R it means the cursor was on column 1 of row 33.) The fact that you're seeing this escape sequence means that some subprocess had restored terminal settings that included echo=true right before the terminal responded to the current cursor position request. That's sort of the opposite symptom of this bug (this one is about incorrectly restoring echo=false) but is definitely the same race condition at work.

@rmunn thanks a lot for the explanation, I will compile a version that allows disabling the colors and progress by env variables and try it again. I am not 100% sure the colors were needed.
The console is prompted for ForegroundColor a lot, would that possibly cause an issue as well? Does it work similar to querying the position of the cursor - that is by turning echo off and writing a sequence to the terminal?

No, the foreground and background color-setting code does not touch any terminal settings like echo; they just write a single escape sequence and need no other special handling. And, at least in ConsolePal.Unix.cs where this bug is triggering, the code that reads the foreground color doesn't actually query the terminal at all. Instead, it simply remembers what the foreground color was last set to via the ForegroundColor property, and returns that value.
This means that if you deliberately set out to confuse the .NET Core Console class about what the current foreground color is, you can. You could set Console.ForegroundColor to red, then manually print out the terminal escape sequence for "set foreground color to green". After that, if you were to read the value of the Console.ForegroundColor property, it would be red, but any text you printed with Console.Write would actually come out green. I don't consider this a bug, as there's no standard way to query the current terminal colors so it's not reasonable to expect .NET to query the real color if you've bypassed it like that. (Some terminals do implement a "what's the current color?" query sequence, but there's no standard terminfo capability for that query, and it's absolutely NOT in scope for .NET, IMHO, to basically reimplement part of terminfo to prevent people from shooting themselves in the foot.)

Gotcha. Very helpful. The terminal colors get confused often because we do what you described, we write colors from two different processes, and so process1 writes in red, while thinking it is writing in white.

Soooo.... is there any way you'd suggest this echo problem is fixed? I wrote a progress that works by postponing new line until next message comes (or until we are done testing) and from another thread it writes dots to the screen. This requires no cursor movement, does not shift the start of the output, and seems to work nicely overall. But somehow I lost the ability to output color on travisCI, but not locally in Ubuntu WSL. Any clues why that might be?  https://github.com/microsoft/vstest/issues/2282#issuecomment-607381917

Only thing I can think of to suggest is that the first dotnet test process, the one that kicks off two builds and two vstest.console processes, might need to explicitly save the terminal settings before kicking off its first process via Process.Start(). The only way I can see to do that in a safe way is to call Interop.Sys.InitializeTerminalAndSignalHandling explicitly somewhere in the dotnet test code. This will, on Unix at least, ensure that InitializeTerminal() is called (which reads and stores the current terminal settings), and will set up an atexit handler to call UninitializeTerminal() on program exit (which will restore the saved terminal settings). And since atexit calls its registered functions in LIFO order, that means that as long as each process kicked off by dotnet test was properly awaited and reaped before the master dotnet test process ends, the final terminal settings restored will be the ones that the user originally had at the time he ran dotnet test.

https://travis-ci.org/github/nohwnd/ProgressToy/builds/671662254 Pushed here, there are three runs in the same output:
 - VSTEST_RUNNER_PROGRESS=0 VSTEST_RUNNER_COLOR=1 dotnet test
 - VSTEST_RUNNER_PROGRESS=1 VSTEST_RUNNER_COLOR=0 dotnet test
 - VSTEST_RUNNER_PROGRESS=1 VSTEST_RUNNER_COLOR=1 dotnet test

The first two pass, no problem. The third gets stuck and I need to cancel the build.
https://travis-ci.org/github/nohwnd/ProgressToy/builds/671665344

BTW, my availability for helping with this issue is about to go to zero for a while, as other tasks are going to take the bulk of my time in the next several weeks. I hope what I've done so far has been helpful.

😭😭😭

@rmunn Thanks for your help! If you have any idea why it would trigger only with colors let us know 🙂

What is going on with that Travis CI log? I'm having a hard time telling where the VSTEST_RUNNER_PROGRESS=1 VSTEST_RUNNER_COLOR=1 dotnet test run starts and the other run ends, because it looks a bit interleaved. Does the same failure happen if you only run the VSTEST_RUNNER_PROGRESS=1 VSTEST_RUNNER_COLOR=1 dotnet test version, and not the other two?
AFAICT, colors should have no effect on this bug, so I have no idea why the VSTEST_RUNNER_PROGRESS=1 VSTEST_RUNNER_COLOR=0 run succeeds (doesn't trigger the hang) but the VSTEST_RUNNER_PROGRESS=1 VSTEST_RUNNER_COLOR=1 run hangs. Where is the code that you wrote that handles the VSTEST_RUNNER_COLOR environment variable? I looked all over the branches of your ProgressToy repo and couldn't find it, so I can't tell whether you're accidentally changing something besides color when VSTEST_RUNNER_COLOR is equal to 1.
And my availability is likely to be almost zero in the next few weeks, but I might occasionally have a spare hour to throw at this.

And one other idea. If you're building custom versions of the console code for your repro, try adding code in Native/Unix/System.Native/pal_console.c that logs something to syslog (or just appends to a file with a hardcoded filename if you're not familiar with the Unix syslog API) every time the ConfigureTerminal function is called, and maybe also log something every time InitializeTerminalCore and UninitializeTerminal are called. If you can, log the PID of the process and the state the terminal was set (or restored) into, or at the very least the state of the ECHO flag being set or restored on the terminal. That might give you a visual picture of the race happening: by looking at the log files and tracing whether the ECHO flag is being handled in a way that makes sense.

@rmunn I would make a call to forward this issue to https://github.com/dotnet/runtime
I bet there are exactly the same looking issues all over the GitHub and a work needed is to just collect all links to them and then create an issue in https://github.com/dotnet/runtime repo indicating that this issue has pre-done investigation.

I'm also experiencing this with .NET Core 3.1.102, Ubuntu 18.04.4 LTS.

ditto that

temporary work-around in bash syntax:
BEFORE=$(stty -g); dotnet test --logger:"console;verbosity=detailed"; stty "${BEFORE}"
But I will just try to notify persons who commited changes related to termios.h in .NET Runtime to maybe explain things.
@stephentoub

To behave similar to Windows, .NET Core disables echoing when Console is used for input in some way.
When a .NET Core app exits, it will restore the echoing state it captured at start.
Does dotnet test wait for all it's children to terminate (especially the children which are given access to terminal by not redirecting streams)?
I'll try to reproduce this week using instructions from https://github.com/microsoft/vstest/issues/2282#issuecomment-605665646.

I think it does wait for them.

When invoking dotnet test, this leads to MsBuild processes being started:
["/home/tmds/Downloads/dotnet-50-p2/dotnet", "/home/tmds/Downloads/dotnet-50-p2/sdk/5.0.100-preview.2.20176.6/MSBuild.dll", "/home/tmds/Downloads/dotnet-50-p2/sdk/5.0.100-preview.2.20176.6/MSBuild.dll", "/nologo", "/nodemode:1", "/nodeReuse:false"]

No one waits for this process to terminate. When such a process terminates after dotnet test it restores terminal settings to what it observed at start, which may be echo off.
I think the resolution is to either wait for these processes to terminate, or to not give them access to terminal by redirecting their streams.

@tmds thanks for analyzing this.
@jakubch1 do you plan to solve the CC merge issue by using the msbuild to only build and figure out source paths, and then run multiple test hosts from single vsconsole? I think it would be the best way to go because that would help us here with the echoing, as well as with the parallel output, and with other issue where you can't run multiple different TFMs from single console.

@nohwnd I think we should go with minimal changes to current behaviour and running for individual project and running same project from solution should be almost identical. The issue is that for example coverlet is executing additional steps before tests run and after tests run (for individual project). I think more about approach that all individual project runs will report tests status and attachements to some orchestrator (through port similar like in VS).

any updates on this? It's just a huge pain to have a broken console everytime I run my test suite. I now instinctively write stty echo after make test. This is affecting multiple developers in my org.

I find myself wondering, is this problem certainly a VSCode one? Or might it be related to this issue and possibly related to some bug in the code itself. There is a comment on that other issue that suggests possibly an async await bug in the user project itself is the root cause of the problem.
I have to type stty echo frequently too--to the point that I have aliased the command. But if the problem is within the project itself... how does one figure that out? That's what leaves me stumped on both of these problems.

I find myself wondering, is this problem certainly a VSCode one? Or might it be related to this issue and possibly related to some bug in the code itself. There is a comment on that other issue that suggests possibly an async await bug in the user project itself is the root cause of the problem.
I have to type stty echo frequently too--to the point that I have aliased the command. But if the problem is within the project itself... how does one figure that out? That's what leaves me stumped on both of these problems.

definitely not. It happens running dotnet test from my terminal, vscode not involved at all.

definitely not. It happens running dotnet test from my terminal, vscode not involved at all.

But the dotnet test is running your test code. And when I run tests via VSCode... that's the same test code getting run.

definitely not. It happens running dotnet test from my terminal, vscode not involved at all.

But the dotnet test is running your test code. And when I run tests via VSCode... that's the same test code getting run.
I should have said "certainly a .NET problem"... not VSCode. Meaning... at heart is it not a problem with the user's code?

Ah, saying vscode confused me.
It sounded like this is something related to not restoring the environment correctly when launching multiple processes per https://github.com/microsoft/vstest/issues/2282#issuecomment-614620392
I have multiple projects affected by this, while I'm certain I have bugs, I would be surprised if I managed to cause the same bug multiple times.
This is happening with code that does async operations, but I am sure I am awaiting them all properly in atleast one of the projects lol.

I am sure I am awaiting them all properly in at least one of the projects lol.

Hahah yeah, I have only two projects and they're rather incestuous in terms of common approach, common code. I wish I had your confidence.

dotnet test /m:1 does not exhibit the same problem as dotnet test for me

dotnet test /m:1 does not exhibit the same problem as dotnet test for me

Same for me. On Ubuntu 20.04.1 for both projects I'm actively working on dotnet test stops the terminal from echoing after completion pretty much every time, but I've not been able to reproduce the problem with /m:1 added to the arguments

dotnet test /m:1 does not exhibit the same problem as dotnet test for me

Perhaps this is a stupid question, but what does /m:1 mean, and why am I not able to answer that question with a quick google? Am I missing something? I did try to figure it out without having to ask...

This had me stumped for a while too @WellspringCS . As @chrisheil suggests its an option that's passed through to MSBuild to specify the maximum number of concurrent processes used. It's documented under 'maxCpuCount' here https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2019

Ah, thank you, @smfeest and @chrisheil -- I've given it a try on ubuntu 18.04, and a few tests over here suggests that /m:1 solves the problem for me, too. I'm a believer.

Problem has not resurface since I added -m:1. I can live with this workaround until the real solution arrives. Thanks again @smfeest @chrisheil  for explaining and @dten for pointing it out!

The fact that -m:1 solves the issue is more evidence for the race condition that I described in https://github.com/microsoft/vstest/issues/2282#issuecomment-609686635. Hopefully that description will allow someone to find a solution.

The solution on vstest side is what I put in https://github.com/microsoft/vstest/issues/2282#issuecomment-614620392:

the resolution is to either wait for these processes to terminate, or to not give them access to terminal by redirecting their streams.

This change for .NET 6: https://github.com/dotnet/runtime/pull/42303 should also make it less likely terminal ends up non-echoing after running dotnet test.

Got hit by this issue in Ubuntu 20.10 ... do I really need to slow down the execution of my tests with -m:1 just so that my cursor does not disappear after running dotnet test??

@deyanp - You can create a test.sh script containing dotnet test "$@" ; stty echo to ease the pain.

Just a thought. If you run it via a script does the problem only affect the subshell?
i.e. will the shell created for ruining the .sh be affected but will then close immediately when the script ends leaving you in the untouched original shell?
If yes then (dotnet test) should also work (in bash) because it will run in a subshell

@dten - I just tried that, and unfortunately your idea doesn't work. Running in a subshell via (dotnet test) I was still able to reproduce the non-echoing behavior pretty consistently. The reason is because the terminal (or the pseudo-terminal, the pty), not the subshell, is where the echo flag lives. So running the dotnet test command in a subshell doesn't change the behavior because the subshell is still connected to the same pseudo-terminal (in my case, a gnome-terminal tab).

Darn

What seems to work for me is redirecting standard-input away from the terminal: dotnet test < /dev/null.
Although I still don't see why dotnet test queries my cursor position.

What seems to work for me is redirecting standard-input away from the terminal: dotnet test < /dev/null.
Although I still don't see why dotnet test queries my cursor position.

I can confirm that this works. I found a project that triggers this bug fairly reliably and ran 100 instances of dotnet test without redirection, then 100 instances running as dotnet test < /dev/null. Without redirection, the bug triggered 81 times out of 100 runs, and 19 runs out of 100 did not trigger the bug. When I added < /dev/null, 0 out of 100 runs triggered the bug, and 100 out of 100 runs ran without modifying the stty echo settings.
So redirecting stdin bypasses the buggy code path, probably because the runtime assumes that if stdin isn't a terminal, stdout won't be either and so it doesn't use the pal_console.c code that triggers this bug.

I can confirm this this on macOS 10.15.7 and that /m:1 works around my project.
I'm happy to test out preview bits to validate a bug fix here.

@rainersigwald when I run the steps from https://github.com/microsoft/vstest/issues/2282#issuecomment-605665646:
mkdir TestTerminalIssues
cd TestTerminalIssues
dotnet new xunit --name Project1
dotnet new xunit --name Project2
dotnet new classlib --name Project3
dotnet new sln
dotnet sln add Project1 Project2 Project3
dotnet build
dotnet test

These dotnet processes are started:
dotnet           7907   6383     0 /usr/bin/dotnet test
dotnet           7920   7907     0 /usr/lib64/dotnet/dotnet exec /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll -maxcpucount -verbosity:m -restore -target:VSTest -nodereuse:false -nologo
dotnet           7943   7920     0 /usr/lib64/dotnet/dotnet /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /nologo /nodemode:1 /nodeReuse:false /low:false
dotnet           7961   7920     0 /usr/lib64/dotnet/dotnet /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /nologo /nodemode:1 /nodeReuse:false /low:false
dotnet           8007   7943     0 /usr/lib64/dotnet/dotnet exec /usr/lib64/dotnet/sdk/5.0.100/vstest.console.dll --testAdapterPath:/home/tmds/.nuget/packages/coverlet.collector/1.3.0/build/netstandard1.0/ --framework:.NETCoreApp,Version=v5.0 /tmp/TestTerminalIssues/Project2/bin/Debug/net5.0/Project2.dll
dotnet           8020   7920     0 /usr/lib64/dotnet/dotnet exec /usr/lib64/dotnet/sdk/5.0.100/vstest.console.dll --testAdapterPath:/home/tmds/.nuget/packages/coverlet.collector/1.3.0/build/netstandard1.0/ --framework:.NETCoreApp,Version=v5.0 /tmp/TestTerminalIssues/Project1/bin/Debug/net5.0/Project1.dll
dotnet           8043   8007     0 /usr/lib64/dotnet/dotnet exec --runtimeconfig /tmp/TestTerminalIssues/Project2/bin/Debug/net5.0/Project2.runtimeconfig.json --depsfile /tmp/TestTerminalIssues/Project2/bin/Debug/net5.0/Project2.deps.json /home/tmds/.nuget/packages/microsoft.testplatform.testhost/16.7.1/lib/netcoreapp2.1/testhost.dll --port 42619 --endpoint <IP_ADDRESS>:042619 --role client --parentprocessid 8007 --telemetryoptedin false
dotnet           8046   8020     0 /usr/lib64/dotnet/dotnet exec --runtimeconfig /tmp/TestTerminalIssues/Project1/bin/Debug/net5.0/Project1.runtimeconfig.json --depsfile /tmp/TestTerminalIssues/Project1/bin/Debug/net5.0/Project1.deps.json /home/tmds/.nuget/packages/microsoft.testplatform.testhost/16.7.1/lib/netcoreapp2.1/testhost.dll --port 40609 --endpoint <IP_ADDRESS>:040609 --role client --parentprocessid 8020 --telemetryoptedin false

I see the processes dotnet /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /nologo /nodemode:1 /nodeReuse:false /low:false
are not waited for by their parent:
dotnet exec /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll -maxcpucount -verbosity:m -restore -target:VSTest -nodereuse:false -nologo.
Do you know what creates these processes? I think making the parent Process.WaitForExit is the proper fix for this issue.

@rainersigwald when I run the steps from https://github.com/microsoft/vstest/issues/2282#issuecomment-605665646:
mkdir TestTerminalIssues
cd TestTerminalIssues
dotnet new xunit --name Project1
dotnet new xunit --name Project2
dotnet new classlib --name Project3
dotnet new sln
dotnet sln add Project1 Project2 Project3
dotnet build
dotnet test

These dotnet processes are started:
dotnet           7907   6383     0 /usr/bin/dotnet test
dotnet           7920   7907     0 /usr/lib64/dotnet/dotnet exec /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll -maxcpucount -verbosity:m -restore -target:VSTest -nodereuse:false -nologo
dotnet           7943   7920     0 /usr/lib64/dotnet/dotnet /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /nologo /nodemode:1 /nodeReuse:false /low:false
dotnet           7961   7920     0 /usr/lib64/dotnet/dotnet /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /nologo /nodemode:1 /nodeReuse:false /low:false
dotnet           8007   7943     0 /usr/lib64/dotnet/dotnet exec /usr/lib64/dotnet/sdk/5.0.100/vstest.console.dll --testAdapterPath:/home/tmds/.nuget/packages/coverlet.collector/1.3.0/build/netstandard1.0/ --framework:.NETCoreApp,Version=v5.0 /tmp/TestTerminalIssues/Project2/bin/Debug/net5.0/Project2.dll
dotnet           8020   7920     0 /usr/lib64/dotnet/dotnet exec /usr/lib64/dotnet/sdk/5.0.100/vstest.console.dll --testAdapterPath:/home/tmds/.nuget/packages/coverlet.collector/1.3.0/build/netstandard1.0/ --framework:.NETCoreApp,Version=v5.0 /tmp/TestTerminalIssues/Project1/bin/Debug/net5.0/Project1.dll
dotnet           8043   8007     0 /usr/lib64/dotnet/dotnet exec --runtimeconfig /tmp/TestTerminalIssues/Project2/bin/Debug/net5.0/Project2.runtimeconfig.json --depsfile /tmp/TestTerminalIssues/Project2/bin/Debug/net5.0/Project2.deps.json /home/tmds/.nuget/packages/microsoft.testplatform.testhost/16.7.1/lib/netcoreapp2.1/testhost.dll --port 42619 --endpoint <IP_ADDRESS>:042619 --role client --parentprocessid 8007 --telemetryoptedin false
dotnet           8046   8020     0 /usr/lib64/dotnet/dotnet exec --runtimeconfig /tmp/TestTerminalIssues/Project1/bin/Debug/net5.0/Project1.runtimeconfig.json --depsfile /tmp/TestTerminalIssues/Project1/bin/Debug/net5.0/Project1.deps.json /home/tmds/.nuget/packages/microsoft.testplatform.testhost/16.7.1/lib/netcoreapp2.1/testhost.dll --port 40609 --endpoint <IP_ADDRESS>:040609 --role client --parentprocessid 8020 --telemetryoptedin false

I see the processes dotnet /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll /nologo /nodemode:1 /nodeReuse:false /low:false
are not waited for by their parent:
dotnet exec /usr/lib64/dotnet/sdk/5.0.100/MSBuild.dll -maxcpucount -verbosity:m -restore -target:VSTest -nodereuse:false -nologo.
Do you know what creates these processes? I think making the parent Process.WaitForExit is the proper fix for this issue.

@Forgind -^ can you take a look at the previous comment.

@Forgind -^ can you take a look at the previous comment.

@tmds The first process (7920) was created to invoke MSBuild for dotnet build. The second and third are worker nodes, which, if they aren't finishing their work before the parent exits, may be the reason /m:1 resolved the issue—it forced all the work to be done with the first node. Making the nodes without /nodemode:1 wait for its children to exit would be problematic in the /nodeReuse:true scenario, since the parent could be waiting indefinitely at that point. I don't know off-hand of a reason we can't wait if nodeReuse is false, though.

@tmds The first process (7920) was created to invoke MSBuild for dotnet build. The second and third are worker nodes, which, if they aren't finishing their work before the parent exits, may be the reason /m:1 resolved the issue—it forced all the work to be done with the first node. Making the nodes without /nodemode:1 wait for its children to exit would be problematic in the /nodeReuse:true scenario, since the parent could be waiting indefinitely at that point. I don't know off-hand of a reason we can't wait if nodeReuse is false, though.

@Forgind

Making the nodes without /nodemode:1 wait for its children to exit would be problematic in the /nodeReuse:true scenario, since the parent could be waiting indefinitely at that point

What does /nodemode:1 mean?

I don't know off-hand of a reason we can't wait if nodeReuse is false, though.

Can we look into making this change? Does this code live in dotnet/msbuild?

@Forgind

Making the nodes without /nodemode:1 wait for its children to exit would be problematic in the /nodeReuse:true scenario, since the parent could be waiting indefinitely at that point

What does /nodemode:1 mean?

I don't know off-hand of a reason we can't wait if nodeReuse is false, though.

Can we look into making this change? Does this code live in dotnet/msbuild?

What does /nodemode:1 mean?

It specifies that a particular node is a worker node. Build requests originate at the parent and come through that to the worker node that executes build logic and passes back the results. If /nodeReuse is true, that worker node is supposed to survive after the build completes to be reused by another build. If it keeps getting reused, it could live forever.

Can we look into making this change? Does this code live in dotnet/msbuild?

Yes, I think so. I'd probably start at NodeProviderOutOfProc.GetNode and walk backwards or maybe BuildManager.ReportResultsToSubmission.

What does /nodemode:1 mean?

It specifies that a particular node is a worker node. Build requests originate at the parent and come through that to the worker node that executes build logic and passes back the results. If /nodeReuse is true, that worker node is supposed to survive after the build completes to be reused by another build. If it keeps getting reused, it could live forever.

Can we look into making this change? Does this code live in dotnet/msbuild?

Yes, I think so. I'd probably start at NodeProviderOutOfProc.GetNode and walk backwards or maybe BuildManager.ReportResultsToSubmission.

This should be fixed by https://github.com/dotnet/msbuild/pull/6053, which will be in the MSBuild v16.10.

Really, using dotnet 5 the problem does not occur to me anymore :)

After execute a 'dotnet test' on WSL2 the font size decreases. Is also related?

I agree, but I don't have permission to close it. @nohwnd?

I just had this. :/ Why is it closed?

@andreujuanc,
@tmds fixed this with https://github.com/dotnet/msbuild/pull/6053. That came out in 16.10 if I remember correctly, so you would have to update .NET.

This was reported 2 years ago and the fix is to migrate to a new version of .Net? ok

After execute a 'dotnet test' on WSL2 the font size decreases. Is also related?

I confirm that this still happens on net6.0.
:~$ dotnet --version
6.0.100

@BDisp

I confirm that this still happens on net6.0.

Can you create an issue for the font size change? As I mentioned in https://github.com/microsoft/vstest/issues/2282#issuecomment-933489651, it is not related to the echoing.
@andreujuanc

Am I supposed to migrate all my services to .net 5 (or 6)? Because this bug was never fixed?

You anyhow need to port your app in the coming year to .NET 6+ to remain on a supported version.

Such more for "LTS"

LTS means you get security fixes. Microsoft rarely backports other fixes to minimize the chance of regressions.

Should have been fixed months after opening so there could be less friction and better support for the community. But instead it's fixed 2 years later so it won't be covered by the patch support.


Language Server Protocol support

Hey!
I see that texpresso supports multiple different editors via ad-hoc plugins made separately for each one. Would it make sense to unify the interface and provide texpresso as an LSP?
This way, it would trivially work with many different editors with no need to add support one-by-one. And the LSP interface seems sufficient for texpresso's functionality.
Ivan

Hi,
The existing protocol does the job quite well, and it allows for cheap experimentation with Vim/Emacs. It would not make sense to remove it in my opinion, but adding LSP as an alternative protocol could be a good idea. I don't have the time to do this, but it would be welcome as a contribution.
However, I am thinking that adding support for TeXpresso to an existing LSP server, likely https://github.com/latex-lsp/texlab, is maybe the way to go. TeXpresso can only provide a subset of the features expected from an LSP server.
A dedicated LSP server like TeXlab can make better decision about what features to expose, and when to use TeXpresso and when to use other sources of information.


Package name for npm

We need to find a name to publish the package on npm.
It is not directly possible to use ij, as another "project" is squatting the name (this is not allowed, we could ask the npm team to delete it).
Anyway, IMHO ij is probably not the best name. Yes, it is short, but it's not easy to pronounce and it's not obvious what it means.
I think that whatever the name is, it should have the full "image" word in it.
So with that in mind, if we look in npm there are already:

image: image format conversion
jimp: basic image processing, only for node.
image-ninja: same with less functionality
imagejs: same

image-js is still available. It is a bit redundant to add js because npm packages are by definition written in JavaScript, but unless we find something else, it is a good option that reflects the name of the organisation and the domain name(s).

I think we should go for image-js
It is like that the same name as the website
On Sun, 12 Jul 2015 01:17:32 -0700, Michaël Zasso wrote:

We need to find a name to publish the package on npm.
It is not directly possible to use ij, as another "project" [1] is
squatting the name (this is not allowed, we could ask the npm team to
delete it).
Anyway, IMHO ij is probably not the best name. Yes, it is short, but
it's not easy to pronounce and it's not obvious what it means.
I think that whatever the name is, it should have the full "image"
word in it.
So with that in mind, if we look in npm there are already:

image [2]: image format conversion
jimp [3]: basic image processing, only for node.
image-ninja [4]: same with less functionality
imagejs [5]: same

image-js is still available. It is a bit redundant to add js because
npm packages are by definition written in JavaScript, but unless we
find something else, it is a good option that reflects the name of
the
organisation and the domain name(s).
--
Reply to this email directly or view it on GitHub [6].

Links:
[1] https://www.npmjs.com/package/ij
[2] https://www.npmjs.com/package/image
[3] https://github.com/oliver-moran/jimp
[4] https://www.npmjs.com/package/image-ninja
[5] https://www.npmjs.com/package/imagejs
[6] https://github.com/image-js/ij/issues/32

OK, if there is no objection from @image-js/collaborators I will publish it under the name image-js tomorrow

https://www.npmjs.com/package/image-js


Gallery, Contacts: Fade in the app bar and image on load?

Just a thought: the contacts vignette doesn't seem to have a graceful fade-in for the app bar header graphic. It just pops into place. This is certainly an enhancement request, but maybe there's a nice fade-in that we could do here, or some motion.

Would this be addressed by cross-fading the app bar during the navigation from the main page to the contacts page?

If the app bar includes the picture, which I think it does, then probably? This is low-pri but if we get it for free with an upcoming patch, cool!

I think @HansMuller is planning to look at fading the app bar?

Yes. I think this would be addressed by cross fading the appbar heroes, instead of just substituting the target hero.
The appbar does include the picture, it's displayed by the appbar's flexible space bar.

Is there an open issue for cross-fading? We could close this in favor of cross-fade.

There's this issue: https://github.com/flutter/flutter/issues/5232
The description calls it a "nit", perhaps we should revise that.

I removed the line about it being a "nit". Happy to just report the news w/o judgement :)

Looks like it's crossfading now?

Also, as noted above, maybe this is a dupe of https://github.com/flutter/flutter/issues/5232?

Closing as dupe of #5232.


How to get Eq.(7) from Eq.(5) in the paper

How to get Eq.(7) from Eq.(5) in the paper?

Hi! Here is the derivation of the second term:


microbenchmarks_ios regression

The microbenchmarks_ios test has started failing frequently.

cc @yjbanov
Yegor, can you begin an investigation and delegate to whoever you think is most likely to be able to fix it? (I'm suggesting starting with you since it could be a cocoon issue since it's not failing all the time, just most of the time.)

I'll have a look.

Update: it seems the issue is that flutter logs sometimes feeds us log output from past runs. So the benchmark can either pick up wrong numbers or pick up half-printed log and fail.

adb on android has this "give you past logs sometimes" problem which we have code to work around.  I wasn't aware iOS could do the same.  @chinmaygarde @xster @cbracken

Fixed by https://github.com/flutter/flutter/commit/bc8cc80b9f4c487021f4a3e3f7ea9e96f6afe833


add hasPath

As discussed in #2499 here is a proposal for hasPath function.
Notes:

only own properties are checked
imho hasPathIn should not be implemented right now (until somebody will come with the request)

This looks great.  And I agree about hasPathIn.  Does anyone disagree?  @ramda/core?
One thing I would like to add, though, is to reimplement has in terms of this.  (curry2(function has(prop, obj) {return hasPath([prop], obj);}) That way these two functions cannot get out of sync.

is to reimplement has

Great, will do.
One more thing I'd like to point attention: currently hasPath() with zero-length path returns false. Similar to has() with empty string. But path() with empty path argument returns object itself. Is it ok?
hasPath([], {x: 'foo'}); // => false
path([], {x: 'foo'});    // => {x: 'foo'}

This looks very good to me.  I think this is quite a useful little function.

Thank you! 👍


Hacktoberfest 2021

Road lane detection, a project for smart driver-less cars.

@mohitrohilla021 Check where Codefactor check is failing and fix it.


there not exists dataset files in the google drive link.

"DIS, COD, HRSOD"

I re-organize the storage logic of these datasets in my google-drive.
I'm still upgrading several points to make the transfer between different tasks (DIS / COD / HRSOD) even more smooth with less storage requirement for experiments, which I will update in the README later.
But you can first find all the well-arranged datasets here: DIS / COD / HRSOD. Feel free to download the combined xx_[TR/TE]sets, which should contain all the data you need. Or go into the single ones to download them one by one.


issue-7 Add community artifacts

Add the standard community artifacts from the repository-template

Issue number: #7


BIGTOP-3565. Fix build failure of Alluxio on Cent OS 7 ppc64le.

https://issues.apache.org/jira/browse/BIGTOP-3565
[INFO] Running 'npm install --production --no-save --no-package-lock --no-shrinkwrap' in /bigtop/build/alluxio/rpm/BUILD/alluxio-2.4.1/webui
[ERROR] /bigtop/build/alluxio/rpm/BUILD/alluxio-2.4.1/webui/node/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /bigtop/build/alluxio/rpm/BUILD/alluxio-2.4.1/webui/node/node)

Upgrading node.js to 12 same as done for https://github.com/apache/bigtop/pull/793 should be the fix. We need to upgrade npm too to the version supporting node 12 here.

+1, tested on the ppc64le machine. Thanks @iwasakims!


Insert braces for implicit object literals

CoffeeScript allows implicit object literals that are not surrounded by braces. We need to insert them to convert to JavaScript. Here are a few examples that we should support:
# single line
a b: c
a(b: c)

# multiple lines
a
  b: c
a(
  b: c
)

# indented, multiple lines
a = ->
  b
    c: d

// both single lines look like this
a({b: c});

// both multiple lines look like this
a({
  b: c
});

// indented, multiple lines
var a = function() {
  b({
    c: d
  });
};

Note that the full transformation to JavaScript is shown, but this transformation need only worry about the object braces { and }.

Fixed in acd816d8d107768b83d9fbcdeb226e117632aae9, released in v1.3.0.


Add simple internal citations layer for preambles

Super simple implementation which matches text like "III.F.4" if that node is
present in the preamble.
Resolves eregs/notice-and-comment#45
Looks like

Coverage increased (+0.0002%) to 91.143% when pulling d14c5d2dd4a895fe7a07139c2fffc2ac09e1ff33 on cmc333333:45-preamble-citations into 894b1a1c48dab14d876e66c70c463534d948ec3d on 18F:master.


Add Machine Schema for PerfNext

• Added a machine schema for machine data file
• Added a template machine data file
Closes https://github.com/AdoptOpenJDK/openjdk-test-tools/issues/71
Another Related Issue: https://github.com/AdoptOpenJDK/openjdk-jenkins-helper/issues/25
Signed-off-by: piyush286<EMAIL_ADDRESS>

@smlambert Thanks! Added those license headers! Btw just wondering whether we need to add those headers to all our other files. I guess it's just good practice to mention the license info.
Looking at this openjdk-test-tools repo, we just have 35 files, mainly xml, with those headers while over 250 files of all types on the openjdk-tests repo.
openjdk-test-tools repo:

openjdk-tests repo:

Yes, typically all files should have the Apache V2 license in the header, if they are destined for AdoptOpenJDK repos.  There may a few file types that we do not bother to do so, but generally all.
Format differs slightly depending on what type the file is (xml vs java vs other languages), can look in the other AdoptOpenJDK repos, as you have done to find examples for most file types.


OS is read incorrectly from SynthMinidump

If added to minidump.rs, the test
#[test]
fn test_os() {
    let mut system_info = SystemInfo::new(Endian::Little);
    system_info.platform_id = PlatformId::MacOs as u32;
    let dump = SynthMinidump::with_endian(Endian::Little).add_system_info(system_info);

    let dump = read_synth_dump(dump).unwrap();
    let system_info = dump.get_stream::<MinidumpSystemInfo>().unwrap();
    assert_eq!(system_info.os, Os::MacOs);
}

fails with
---- minidump::test::test_os stdout ----
thread 'minidump::test::test_os' panicked at 'assertion failed: `(left == right)`
  left: `Unknown(2164326400)`,
 right: `MacOs`',

That seems like a bug to me, I would expect MinidumpSystemInfo.os to correspond to SystemInfo.platform_id.

https://github.com/luser/rust-minidump/blob/1d55be68ffb4cbae1f287868524b41fb97ee7cc5/synth-minidump/src/lib.rs#L1798-L1799
🤦♀
yeah that'd do it


[Code Addition Request]:  Prefix Tree addition to Algorithm and Data Structure/ Trees

Have you completed your first issue?

[X] I have completed my first issue

Guidelines

[X] I have read the guidelines
[X] I have the link to my latest merged PR

Latest Merged PR Link
N/A
Project Description
I want to add program for menu driven code for prefix tree (Tries Data Structure) to the existing code base
Full Name
Vaibhav Anil Yerkar
Participant Role
GSSOC

@UTSAVS26 can you review my issue and assign it to me


chore: update links to Slack workspace

The Heroku instance was removed a few days ago. We need to update the links to have them point to https://slack.cilium.io/ instead.
Fixes: https://github.com/ebpf-io/ebpf.io-website/issues/621

Thanks Shedrack! I'd merge it but I'd like to check that the website still builds before that. Not sure who can approve the preview deployment, I suppose Bill has the rights

Yes @xmulligan has the rights to

I've triggered the deploy

OK the redirect works now :tada:


[1.11.2]Crash with extra Utilities wireless RF transmitter and universal cables

Placing a Wireless RF transmitter from extra utilities near a universal cable causes the game to crash. Tested with only Mekanism, Extra Utilities and JEI.
https://pastebin.com/PC1NFWHR

Fixed!

Just to confirm, this is not fixed in the latest release version correct? I'm still getting the crash with 931.305.

It will be fixed in the next version

For easy searching of fix commits:
Fixed in 26061f35f73d9783803b8d630d17d8261f5388b9


Front facing camera always rotates the result

I am using the latest version of your library. I am using only front facing camera. I took the code from your sample app. But when I take the picture from front facing camera, the result is rotated and zoomed. I have to rotate the result bitmap to 270 degree and then flip it to get the proper result. May I know the actual issue and How can it be fixed ? Here is my code:
private Fotoapparat createFotoapparat() {
        return Fotoapparat
                .with(this)
                .photoResolution(standardRatio(
                    highestResolution()
                ))
                .into(cameraView)
                .previewScaleType(ScaleType.CenterCrop)
                .lensPosition(front())
                .focusMode(firstAvailable(
                        continuousFocusPicture(),
                        autoFocus(),
                        fixed()
                ))
                .flash(firstAvailable(
                        autoRedEye(),
                        autoFlash(),
                        torch(),
                        off()
                ))
                .previewFpsRange(highestFps())
                .sensorSensitivity(highestSensorSensitivity())
                .logger(loggers(
                        logcat(),
                        fileLogger(this)
                ))
                .cameraErrorCallback(new CameraErrorListener() {
                    @Override
                    public void onError(CameraException e) {
                        Toast.makeText(CameraActivity.this, e.toString(), Toast.LENGTH_LONG).show();
                    }
                })
                .build();
    }

@Diolor Also having this issue on Galaxy Tab S2. Taking a front-facing photo with the device in landscape orientation is fine, but portrait orientation photos are rotated by 90 degrees clockwise.

In my testing I believe the issue lies with this line in routine/camera/StartRoutine.kt:
deviceOrientation = Orientation.Vertical.Portrait,
If I modify this to getScreenOrientation it works but Landscape and ReverseLandscape are switched. If I switch those around in getScreenOrientation then the camera preview shows up upsidedown but the photos come in correctly in all the above tests. Not sure what a clean solution is but I thought this might be helpful to someone.

@Diolor Having the same issue with a BV6000s. How can this be addressed?

@emilany The calculations inside OrientationResolver#computeImageOrientation need to be fixed

I noticed that when I specify camera resolution parameter, like I want width:1080xheight:1440, but I have to set width=1440, height=1080,  is this one of reason why it change orientation?

For anyone curious, I was able to resolve the issue for my purposes by setting Device.startOrientationMonitoring in StartOrientationRoutine.kt to just be an empty method. This perhaps isn't a great practice but it prevents fotoapparat from trying to correct orientation based on the way you are holding the device. I then am handling the rotation myself (as was the case pre version 2) and saving the file myself.
I use the following for rotating the image:
  Matrix matrix = new Matrix();
  if (camera.equals("Front")) {
    matrix.postRotate(amountRotated-result.rotationDegrees);
  } else {
    matrix.postRotate(-amountRotated-result.rotationDegrees);
  }
  Bitmap rotated = Bitmap.createBitmap(result.bitmap, 0, 0, result.bitmap.getWidth(), result.bitmap.getHeight(), matrix, true);

Where amountRotated is the device orientation offset, calculated however you want (using your own orientation listener or basing it on activity orientation). Doing it this way allows me to prevent photos from being taken in certain orientations.
This seems to be working on front and back cameras and in all orientations on my devices including those with non-standard camera mountings like the Nexus 5x.

@andrewcking How do you obtain the amoutRotated value?

I rotate bitmap and flip it while processing frames.
   override fun process(frame: Frame) {
        Log.d(TAG, "frame: ${frame.image.size}, ${frame.size}")

        YuvImage(
            frame.image,
            ImageFormat.NV21,
            frame.size.width,
            frame.size.height,
            null
        ).let { yuvImage ->
            ByteArrayOutputStream().use { output ->
                yuvImage.compressToJpeg(
                    Rect(0, 0, frame.size.width, frame.size.height),
                    100,
                    output
                )
                output.toByteArray().apply {
                    BitmapFactory.decodeByteArray(this, 0, size)?.let { bitmap ->
                        process(
                            bitmap.rotate(90f).flip(
                                false, activeCamera == Camera.Front
                            )
                        )
                        bitmap.recycle()
                    }
                }
            }
        }
    }

    private fun Bitmap.flip(horizontal: Boolean, vertical: Boolean): Bitmap {
        val matrix = Matrix()
        matrix.preScale((if (horizontal) -1 else 1).toFloat(), (if (vertical) -1 else 1).toFloat())
        return Bitmap.createBitmap(this, 0, 0, width, height, matrix, true)
    }

    private fun Bitmap.rotate(degrees: Float): Bitmap {
        val matrix = Matrix()
        matrix.postRotate(degrees)
        val scaledBitmap = Bitmap.createScaledBitmap(this, width, height, true)
        return Bitmap.createBitmap(
            scaledBitmap,
            0,
            0,
            scaledBitmap.width,
            scaledBitmap.height,
            matrix,
            true
        )
    }


fix(ci): make "vale" available

Changes

This PR adds a step to the deployment workflow to install "Vale" before it get's used during testing, which caused the deployment to fail.
Closes #1373

LGTM, do we need to add this anywhere else?

Only the "release" and "test" workflow files have steps running the tests, so this should be it for now. 🙂


feat: allow unchecked SQL operators

What this PR changes/adds
This PR adds an overloaded constructor for the SqlQueryStatement class that allows
to disable the operator checking.
That means, that the SqlQueryStatement won't throw an IllegalArgumentException anymore when it encounters
a supposedly illegal operator.
Why it does that
Postgres has some very specific operators, such as the ?, which can be used for JSONB (not JSON!) types:
SELECT *
FROM sometable
WHERE (someJsonColumn -> 'stringarray_prop')::jsonb ? 'someval_that_occurs_in_the_array';

Check out this stackoverflow article for another example.
Now, since we do strict checks on =, in, like, constructing such a query would not be possible.
Further notes
It would have been possible to simply at the ? operator to the SqlConditionExpression.SUPPORTED_PREPARED_STATEMENT_OPERATORS list, but then we're dragging Postgres-specific operators into the otherwise generic SqlQueryExpression and that felt wrong.
Although I haven't verified this, there could be other operators. Typically, if the usage of those operators is needed, we're dealing with a very niche use case, where operator validation can likely be foregone.
Linked Issue(s)
Needed for https://github.com/eclipse-edc/IdentityHub/issues/188
Please be sure to take a look at the contributing guidelines and our etiquette for pull requests.

Codecov Report
Attention: 9 lines in your changes are missing coverage. Please review.

Comparison is base (c72fc66) 71.72% compared to head (149a887) 4.42%.

:exclamation: Current head 149a887 differs from pull request most recent head 3adfe11. Consider uploading reports for the commit 3adfe11 to get more accurate results

Files
Patch %
Lines

...eclipse/edc/sql/translation/SqlQueryStatement.java
0.00%
8 Missing :warning:

...se/edc/sql/translation/SqlConditionExpression.java
0.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##               main   #3698       +/-   ##
============================================
- Coverage     71.72%   4.42%   -67.31%
- Complexity        0     236      +236
============================================
  Files           919     919
  Lines         18447   18448        +1
  Branches       1034    1035        +1
============================================
- Hits          13232     817    -12415
- Misses         4756   17614    +12858
+ Partials        459      17      -442

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add train configuration for aura GraphSage

Thank you for your contribution to the Graph Data Science Client project.

Before submitting this PR, please read Contributing to the Neo4j Ecosystem.
Make sure:

[x] You signed the Neo4j CLA (Contributor License Agreement) so that we are allowed to ship your code in our library
[x] Your contribution is covered by tests

how about creating the PR against the sgs-train-endpoint branch instead? Then its easier to see the diff


Organizations on the software search page

Organizations on the software search page is not the affiliation of the contributors. It's the "contributing organisations" from the "related" section.

Lets remove related organizations as they've not been asked for. Can add them back in later in need be.


Dynamic attention (decode)

We need a dynamic length flash attention that works with decode. This means a dynamic KV sequence length and length-1 decode sequence length.
decode_dyn_attention.zip

Compiles with https://github.com/iree-org/iree/commit/c31583338a1d8cd099211d8980af7e2dd5791ce5


Not clearing the input after Selection

The search value is being stored and not clearing even after selecting. This is causing issue when dependent dropdown is trying to find a matching element but not available since it has filtered options. How to access the element and clear after Selection.? Immediate response is much appreciated.. Thanks.

Should be fixed in d4914cd .


Laravel-module 8.3 module.json server error

When i remove the module.json file it routes to the url but doesnt show anything. when i add the module.json file to the generated module's root folder, I get 500 | server error. I updated to laravel 8. Please any help

What error are you gettings?

500 | server error

But when I take the module.json out from the module rook directory my app loads fine

Ok am on it

laravel-2023-02-25.log
That is my log can you give me a clue please

You have multiple errors, going from the bottom of the log upwards:
[2023-02-25 16:04:49] live.ERROR: Uncaught Symfony\Component\Finder\Exception\DirectoryNotFoundException: The "C:\Ampps\www\hexupdate\custom_views" directory does not exist. in C:\Ampps\www\hexupdate\vendor\symfony\finder\Finder.php:592

This cannot find the path "C:\Ampps\www\hexupdate\custom_views"
[2023-02-25 16:04:27] live.ERROR: Uncaught ReflectionException: Class App\Policies\ModelPolicy does not exist

You must have some code that is looking for a ModelPolicy that it cannot find
[previous exception] [object] (Illuminate\\Routing\\Exceptions\\UrlGenerationException(code: 0): Missing required parameter for [Route: manage-modules.destroy] [URI: manage-modules/{manage_module}] [Missing parameter: manage_module]. at C:\\Ampps\\www\\hexupdate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Exceptions\\UrlGenerationException.php:35)
[stacktrace]

You have a named route for manage-modules/destroy but a second param is not being passed to the route manage-modules.destroy
[2023-02-25 16:02:58] live.ERROR: Missing required parameter for [Route: manage-modules.destroy] [URI: manage-modules/{manage_module}] [Missing parameter: manage_module]. (View: C:\Ampps\www\hexupdate\resources\views\install\modules\index.blade.php) {"userId":1,"exception":"[object] (Illuminate\\View\\ViewException(code: 0): Missing required parameter for [Route: manage-modules.destroy] [URI: manage-modules/{manage_module}] [Missing parameter: manage_module]. (View: C:\\Ampps\\www\\hexupdate\\resources\\views\\install\\modules\\index.blade.php) at C:\\Ampps\\www\\hexupdate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Exceptions\\UrlGenerationException.php:35)

same as above, you need to find where the route manage-modules.destroy is being used and pass a second param to the route call.

Thanks for the details let me try

<form                              action="{{action('Install\ModulesController@destroy', ['module_name' => $module['name']])}}"                                 style="display: inline;"                                  method="post"                                 onsubmit="return confirm('Do you really want to delete the module? Module code will be deleted but the data will not be deleted')"                             >                                 @method('DELETE')                                 @csrf                                 <button class="btn btn-danger rounded-5 btn-xs"                                     @if($is_demo)                                     disabled="disabled"                                      title="@lang('lang_v1.disabled_in_demo')"                                     @endif                                 >                                 @lang('messages.delete')</button>                             </form>
That is the code for module detroy please

When I remove this code the app functions but that part of the app doesn't

I recommend using a named route instead of calling a controller like that.
But in any case try this
action="{{ action('Install\ModulesController@destroy', $module['name']) }}"

Ok Thanks, thanks that worked. Much appreciated

My name is Jessy Bright what of you

Great 👍
I'm David Carr, nice to meet you.

Same here please
Can we exchange contacts just incase. If you dont mind

Sure I have all my socials linked on my website https://dcblog.dev
I'm also pretty active on Twitter https://twitter.com/dcblogdev

Thanks sir

Please @dcblogdev Can you help me with this also
try {                 $modules[$module]['install_link'] = action('\Modules\\' . $details['name'] . '\Http\Controllers\InstallController@index');             } catch (\Exception $e) {                 $modules[$module]['install_link'] = "#";             }

honestly I highly recommend learning about named routes rather then littering actions in your code.
try
action('\Modules\\' . $details['name'] . '\Http\Controllers\InstallController@index', $module['name']);

Ok thanks

It rather gives me the catch exeption link thus href="#"


Update build.sh

References user story #47
Definition of done
Build script compiles whatever necessary files the extension needs and creates an image for it

Research on workflows, actions and shell scripts done here. Initial build.sh made. To be updated.
[t:55]


upgrade to purescript 0.11

oh.. didn't see the other PRs on this. Anything holding you back from merging one of those?


Repetition of "aggregation" causing some confusion

There are two modes of billing for a cluster that you specify when you create the cluster.
Cluster (default): Billing for ingested data is done at the cluster level. The ingested data quantities from each workspace associated to a cluster are aggregated to calculate the daily bill for the cluster. Per-node allocations from Microsoft Defender for Cloud are applied at the workspace level prior to this aggregation of aggregated data across all workspaces in the cluster.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 89791188-1dd6-c1fa-4fcc-d4641bfb410e
Version Independent ID: 07d22da7-d8f2-4abe-f2b1-7019678aff2a
Content: Azure Monitor Logs pricing details - Azure Monitor
Content Source: articles/azure-monitor/logs/cost-logs.md
Service: azure-monitor
Sub-service: logs
GitHub Login: @guywi-ms
Microsoft Alias: guywild

@iwafula025
Thanks for your feedback! We will investigate and update as appropriate.

Thanks again for bringing this to our attention. We have updated the Doc and it will be live once its merged.  We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


[WIP] Add Windows matrix in Travis CI

Fixes #5887

I'm trying to install python followed by pip, via chocolatey.
(Windows early support in Travis CI does not support built-in Python language yet.)
It seems the Python installation is not recognized while pip is being installed.


Remove non-functional automerge

Unfortunately, dependabot refuses to adhere to another bot's command to
automatically merge a pull request, resulting in bot's talking to each
other on dependabot's ESLint updates but no automatic merges.

This patch removes the non-functional automerge workflow. It doesn't
make sense to keep it.
We can explore some alternatives instead. There seem to be some GitHub
functionalities to do something like this:

https://github.com/marketplace/actions/merge-me

I will open an issue as a reminder.
Your pull request should…

[ ] have a concise title
[ ] close an accompanying issue if one exists
[ ] be against the correct branch (features can only go into develop)
[ ] include migration scripts and documentation, if appropriate
[ ] pass automated testing
[ ] have a clean commit history
[ ] have proper commit messages (title and body) for all commits
[ ] have appropriate tags applied

I had a good laugh when I saw that :)


Puppet Forge reports that the module doesn't validate on Puppet 3.8

I can't re-create the issue on my 3.8 VM with the puppet-syntax gem or the puppet parser validate command. I've sent a question to puppet, but wanted to get something here in case there are questions/discussion.
I was able to apply a test manifest to my Puppet 3.8 vagrant box with the latest version, so hopefully there won't be any real issues.

Puppet resolved this in FORGE-370.


ol.source.Vector#clear issue

Go to http://openlayers.org/en/master/examples/vector-layer.html?mode=raw and type:
vectorLayer.getSource().clear();

In the console.
All the feature should be removed but it's not the case

What happens is that the renderer reloads the layer when vectorLayer.getSource().clear() is called. I am not sure what the expected behavior is in this case.

Right I actually sometimes use this to force a reload. Or is there another way to achieve this?

If you really want a "static source" you should not configure your source with a loader or a url (a default loader is created when the url option is set), and use something like this instead:
var source = new ol.source.Vector();
$.ajax('features.json').then(function(response) {
  var geojsonFormat = new ol.format.GeoJSON();
  var features = geojsonFormat.readFeatures(response,
      {featureProjection: 'EPSG:3857'});
  source.addFeatures(features);
});

Opinions?

this makes sense to me @elemoine

I think that the function should behave the same as previously (v3.4.0)

Try to do vectorSource.clear() in http://openlayers.org/en/v3.4.0/examples/vector-wfs.html and you will observe the same.

ok, at least we have the same behavior everywhere but is that what is expected?
The function documentation is "Remove all features from the source" but it's not the case; the features are reloaded.

ok, at least we have the same behavior everywhere but is that what is expected?

Note that http://openlayers.org/en/v3.4.0/examples/vector-wfs.html uses the v3.4.0 branch. So we already had the problem you're reporting in v3.4.0 and before. But it's more visible now…

This error occurs also in this example http://openlayers.org/en/v3.10.1/examples/earthquake-clusters.html?mode=raw, but does not occur in this one  http://openlayers.org/en/v3.10.1/examples/cluster.html, as they say more above it seems that only occurs in static sources


rockbox-utility: 1.4.1 -> 1.5.1

This updates rockbox-utility from 1.4.1 to 1.5.1.
Things done

Switch to fetchgit from official Git sources.
Build using cmake instead of qmake.
Add desktop item and icon.
Remove (as @AndersonTorres planned) some flags that become unnecessary after updating.

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Would it also be possible to install a desktop entry as per line 65 in https://github.com/NixOS/nixpkgs/pull/353311?


Issue with service principal add password

The Cutsomer used this endpoint on the Service principal(servicePrincipals/{id})  and he successfully added the secret and got the access token.
He complained that he didn't see in the UI manifest for the Service principal he expects to show how the application manifest shows this value.
The issue of not populating the secret value is by design, we used to have that feature previously(3 years) in the UI to add the secret to the Enterprise applications(service principal).
We removed that feature and made an update to the app registration so we recommend the user who does stuff with the app registration(applications) has to be done under the application object only.
Maybe a good idea to add the above note to the new customer to use the application object only to add a password

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 17cf0c2e-27a3-b1cb-d309-b73a103d9d9e
Version Independent ID: 711d36bb-8e59-79ef-8b0f-3fa21184da48
Content: application: addPassword - Microsoft Graph v1.0
Content Source: api-reference/v1.0/api/application-addpassword.md
Product: applications
Technology: microsoft-graph
GitHub Login: @sureshja
Microsoft Alias: MSGraphDocsVteam

Thank you @nukala29 for raising this issue. We have this note in the response section of the article:

and also in the passwordCredential resource doc.

I hope this helps.


Using storybook for a component library

If I'm writing my own React Component Library, then I'd rather not have any package.json (and use only Storybook to browse components). Is it possible to have this? If I run getstorybook by itself then I get:
 • Detecting project type. ✓
    Unsupported Project type. (code: UNDETECTED)
    Visit http://getstorybook.io for more information.

If this use case is not supported, let me know please.

You definitely need to have a some package.json most of the time. Have a look at here for more info: https://getstorybook.io/docs/react-storybook/basics/slow-start-guide


img tags are not automatically complementing.

I use iText  html to pdf  , Need it
com.itextpdf.tool.xml.exceptions.RuntimeWorkerException: Invalid nested tag head found, expected closing tag meta.

Can you post HTML example ?


Remove dead code

As commented in https://github.com/apple/swift-syntax/pull/1199#discussion_r1064184242

@swift-ci please test


test-branch/execute-job/wrong-commit-sha-on-pr/6304ad1a-29fb-41fb-b93e-4a6bee366813

PR for testing 5e462c7306b97e5f858f27ee0fc9812f7efa5f21

/canonical/self-hosted-runners/run-workflows 931ad21dd9ace68aaa0a7d341e94de96ad93fa6b


Features/allow ref in path item

Any reason #3086 was merged into a feature branch, instead of master? Either way, a zero-creative-input-from-me PR, from me, to you :smile:

Woops, it got merged already. It still doesn't work for me if the the files are in a different directory though :/


Stylesheet handling

By extension, this also includes swapping stylesheets similarly to hmr.

This has been roughly implemented.
It still throws errors if a JS module attempts to import a stylesheet.


the tensor size problem doesn't match

>>> import torch
>>> from involution import Involution2d, Involution3d
>>> involution_2d = Involution2d(3, 16, kernel_size=3, padding=1, stride=2, bias=False)
>>> input_ = torch.rand(2, 3, 507, 684)
>>> output = involution_2d(input_)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ouc/anaconda3/envs/sttr/lib/python3.6/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/ouc/anaconda3/envs/sttr/lib/python3.6/site-packages/involution/involution.py", line 133, in forward
    output = (kernel * input_unfolded).sum(dim=3)
RuntimeError: The size of tensor a (253) must match the size of tensor b (254) at non-singleton dimension 4

Hi @DeH40, you have encountered the same problem as in #12. For some configurations and input shapes, you can't reach matching shapes.


unicorn

At Bitget, the safety of your assets is our priority.
https://www.bgportable.com/protection-fund?appVersion=2.47.4&time=1734340390875&androidSdk=34&language=en_US&appTheme=standard&clacCode=4XYB642Q![1734340413118.png](https://github.com/user-attachments/assets/172d9e9b-900c-450b-8a05-c3d4194f77b0)

Close with reason: Unrelated;


Build error under Windows

What happened?
I'm trying to build the source under Windows but i'm getting this error and i still can't understand why:
ERROR: C:/users/user/_bazel_user/upv4752j/external/xz~/BUILD.bazel:71:10: Copying files failed: (Exit 1): cmd.exe failed: error executing CopyFile command (from target @@xz~//:copy_config) cmd.exe /C bazel-out\x64_windows-opt\bin\external\xz~\copy_config-cmd.bat
Cannot find the file path
Target @@libarchive~//tar:bsdtar failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 8.797s, Critical Path: 6.61s
INFO: 53 processes: 24 internal, 29 local.
ERROR: Build did NOT complete successfully

of course if i try to manually run this command i don't have any errors as the file is in the right place:
cmd.exe /C bazel-out\x64_windows-opt\bin\external\xz~\copy_config-cmd.bat
So i'm blocket at this point and i can't go any further: any clue on how to resolve this?
Version
Development (host) and target OS/architectures:
Windows 11 x64
Output of bazel --version:
bazel 7.3.1 (installed with scoop)
The problem seems to be only when building the xz's dep: i've manually build all the other deps and everything is working fine.

We publish an .exe https://github.com/aspect-build/bsdtar-prebuilt/releases/tag/v3.7.5-1
and have CI that builds on Windows which you could study and mimic: https://github.com/aspect-build/bsdtar-prebuilt/blob/main/.github/workflows/build.yaml#L40-L57
This repo doesn't really intend to support you building it yourself on your own windows machine.

Actually is what i did but as i said i get this error. Btw, thank you anyway

okay I hope you get it working, but not a bug in terms of what we promised here


Use break instead of continue in switch statement

Using continue like this causes an error in strict mode: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?

Also occurs on line 261, and fixed in this PR - https://github.com/davidtsadler/ebay-sdk-php/pull/244/files

the maintainer didn´t do anything over a year, but you people open PRs - thanks for giving me that smile every week 😁

the maintainer didn´t do anything over a year, but you people open PRs - thanks for giving me that smile every week 😁

And you still check ;)

the maintainer didn´t do anything over a year, but you people open PRs - thanks for giving me that smile every week 😁

hey anyone know what happened to David Sadler?

So what's better to do? Change it to break or change it to continue 2? Does it make a difference.
I have manually edited the file to break and works great. Not sure if one's better than the other, though.

So what's better to do? Change it to break or change it to continue 2? Does it make a difference?


Exception: input_max_range must be larger than input_min_range

Tried running the codelab and getting the following exception:
05-24 06:48:50.906 31372-31397/org.tensorflow.demo E/TensorFlowInferenceInterface: Failed to run TensorFlow inference with inputs:[input, style_num], outputs:[transformer/expand/conv3/conv/Sigmoid] 05-24 06:48:50.907 31372-31397/org.tensorflow.demo E/AndroidRuntime: FATAL EXCEPTION: inference                                                                      Process: org.tensorflow.demo, PID: 31372                                                                      java.lang.IllegalArgumentException: input_max_range must be larger than input_min_range.                                                                      	 [[Node: transformer/contract/conv1/Relu_eightbit_quantize_transformer/contract/conv1/InstanceNorm/batchnorm/add_1 = QuantizeV2[T=DT_QUINT8, mode="MIN_FIRST", _device="/job:localhost/replica:0/task:0/cpu:0"](transformer/contract/conv1/InstanceNorm/batchnorm/add_1, transformer/contract/conv1/Relu_eightbit_min_transformer/contract/conv1/InstanceNorm/batchnorm/add_1, transformer/contract/conv1/Relu_eightbit_max_transformer/contract/conv1/InstanceNorm/batchnorm/add_1)]]                                                                          at org.tensorflow.Session.run(Native Method)                                                                          at org.tensorflow.Session.access$100(Session.java:48)                                                                          at org.tensorflow.Session$Runner.runHelper(Session.java:285)                                                                          at org.tensorflow.Session$Runner.run(Session.java:235)                                                                          at org.tensorflow.contrib.android.TensorFlowInferenceInterface.run(TensorFlowInferenceInterface.java:142)                                                                          at org.tensorflow.demo.StylizeActivity.stylizeImage(StylizeActivity.java:597)                                                                          at org.tensorflow.demo.StylizeActivity.access$1400(StylizeActivity.java:67)                                                                          at org.tensorflow.demo.StylizeActivity$3.run(StylizeActivity.java:551)                                                                          at android.os.Handler.handleCallback(Handler.java:751)                                                                          at android.os.Handler.dispatchMessage(Handler.java:95)                                                                          at android.os.Looper.loop(Looper.java:154)                                                                          at android.os.HandlerThread.run(HandlerThread.java:61)

Can you point to the code you executed and some info about your environment (e.g. Android Studio version, OS, device type & OS etc)

I used the StylizeActivity from codelab-finish branch.
Environment:
OSX v10.11.6
Android Studio: v2.3.2
Device: Nexus 5X running Android 7.1.2
gradle version 3.3
buildToolsVersion "25.0.3"
Another error log i see just before the exception is:
05-24 06:54:19.993 3132-3132/? E/art: No implementation found for long org.tensorflow.contrib.android.RunStats.allocate() (tried Java_org_tensorflow_contrib_android_RunStats_allocate and Java_org_tensorflow_contrib_android_RunStats_allocate__)

I've not been able to reproduce this using AS 3.0 canary, AS 2.3.2, AS 2.3.1 with a Pixel or a 5X, though I'm sure I saw this happen at the I/O codelab booth on a Pixel too.
If you want to get unblocked, you can find some workaround instructions on this issue (this code is forked from the TF repo).
I think we should move discussion over to that thread too, so I'll close this issue.

Thanks @markmcd . I compiled using AS 3.0 canary and it worked fine.

@markmcd when I run Faster RCNN, I came across error:
2017-12-06 11:05:49.646516: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: Tesla K40m, pci bus id: 0000:09:00.0, compute capability: 3.5)
2017-12-06 11:06:30.110730: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: input_max_range must be larger than input_min_range.

@markmcd  +more error information.
2017-12-06 11:06:30.110756: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: input_max_range must be larger than input_min_range.
[[Node: SecondStagePostprocessor/BatchMultiClassNonMaxSuppression/MultiClassNonMaxSuppression/ClipToWindow_1/Area/mul_eightbit/SecondStagePostprocessor/BatchMultiClassNonMaxSuppression/MultiClassNonMaxSuppression/ClipToWindow_1/Area/sub_1/quantize = QuantizeV2[T=DT_QUINT8, mode="MIN_FIRST", _device="/job:localhost/replica:0/task:0/device:CPU:0"](SecondStagePostprocessor/BatchMultiClassNonMaxSuppression/MultiClassNonMaxSuppression/ClipToWindow_1/Area/sub_1/_817, SecondStagePostprocessor/BatchMultiClassNonMaxSuppression/MultiClassNonMaxSuppression/ClipToWindow_1/Area/mul_eightbit/SecondStagePostprocessor/BatchMultiClassNonMaxSuppression/MultiClassNonMaxSuppression/ClipToWindow_1/Area/sub_1/min/_819, SecondStagePostprocessor/BatchMultiClassNonMaxSuppression/MultiClassNonMaxSuppression/ClipToWindow_1/Area/mul_eightbit/SecondStagePostprocessor/BatchMultiClassNonMaxSuppression/MultiClassNonMaxSuppression/ClipToWindow_1/Area/sub_1/max/_821)]]
2017-12-06 11:06:30.110760: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: input_max_range must be larger than input_min_range.


How do I find the pipeline label id ?

Hi,
Lets say I've instantiated a pipeline via the POST call. The response should tell me the pipeline label that has been kickstarted and I should be able to query on that pipeline label. I remember something similar was present earlier . Can you tell me if this requirement can be met with the current list of apis ?
Thanks

Closing, since there's a duplicate question in the gocd issue page. Questions should be asked on the mailing list. :P
Anyway, I'll answer there.


raise InvalidExpression when passing wrong assets/bands

closes #620

from rio_tiler.io.stac import STACReader

with STACReader(
    "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/48/Q/UM/2021/3/S2B_48QUM_20210312_0_L2A/S2B_48QUM_20210312_0_L2A.json",
) as stac:
    stac.preview(expression="abc-0.1", asset_as_band=True)

>>> InvalidExpression: Could not find any valid assets in 'abc-0.1' expression.

with STACReader(
    "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/48/Q/UM/2021/3/S2B_48QUM_20210312_0_L2A/S2B_48QUM_20210312_0_L2A.json",
) as stac:
    stac.preview(expression="abc-0.1", assets=["abc"], asset_as_band=True)

>>> InvalidExpression: Could not find any valid assets in 'abc-0.1' expression.

with STACReader(
    "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/48/Q/UM/2021/3/S2B_48QUM_20210312_0_L2A/S2B_48QUM_20210312_0_L2A.json",
) as stac:
    stac.preview(expression="blue+abc", asset_as_band=True)

>>> InvalidExpression: Invalid band/asset name 'abc'

with STACReader(
    "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/48/Q/UM/2021/3/S2B_48QUM_20210312_0_L2A/S2B_48QUM_20210312_0_L2A.json",
) as stac:
    stac.preview(expression="blue+0.1")

>>> InvalidExpression: Could not find any valid assets in 'blue+0.1' expression.

cc @mrob95

Looks good, thanks!
In the last case, passing , asset_as_band=True would fix the issue, is it worth mentioning this option in the message when assets are passed without band suffixes with asset_as_band=False?

👍
with STACReader(
    "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/48/Q/UM/2021/3/S2B_48QUM_20210312_0_L2A/S2B_48QUM_20210312_0_L2A.json",
) as stac:
    stac.preview(expression="blue+0.1")

>>> InvalidExpression: Could not find any valid assets in 'blue+0.1' expression, maybe try with `asset_as_band=True`.


Usbdev streaming test

This draft PR contains streaming test sequence.
Issued back to back data packets to a particular enabled endpoint.
Read the information from RX fifo.
Send the buffer ID back to Available buffer FIFO after successful buffer read.

@alees24  Kindly review this. Thanks.

Hi there! This seems to have 2 commits (with different sequences). Could you try re-pushing with just the sequence that you're trying to add?


Upload.java:47-48: 'name' should be optional. If not...

The puzzle 14-d25c375b from #14 has to be resolved:
https://github.com/llorllale/releasecat-maven-plugin/blob/491d588221a1983c2fbf96abdbdfc24903e4b345/src/main/java/org/llorllale/mvn/plgn/releasecat/Upload.java#L47-L48
The puzzle was created by George Aristy on 16-Mar-18.
Estimate: 30 minutes, role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

@0pdd the puzzle #19 is still not solved.


Fix typos in variable names

Some variables were named "Contants" instead of "Constants" in some of the files.

Fixes #23