Implementing a process collector

Hello,
I recently stumbled upon https://github.com/tikv/rust-prometheus/issues/392 and now I'm preparing a migration from rust-prometheus. I'm wondering how it would be possible to add a collector for process metrics just like what rust-prometheus does currently. I'm really inexperienced in those packages, and I don't really see how the ProcessCollector thing would translate here, to add some metrics related to the running process.
Can you tell me what would be necessary to add support for this ? I was thinking probably as another crate that exposes a single global function like crate::export_process_metrics(); so that crate would have to add timers to run the collection and hope that the timer runs often enough to give a precise measurement when prometheus scrapes the endpoint ?
Regards,
Gerry

Hi Gerry,
As you noted above open-metrics-client does not itself support exposition of process metrics today.

I was thinking probably as another crate

That sounds good. I am open to whether that crate would live in this repository or not. The former would likely make development easier as one can make atomic changes across both crates at once (with one pull request).
Off the top of my head the interface of such crate could look like:
fn register_process_metrics(registry: &mut Registry)

The crate would register multiple custom metrics, e.g. a gauge metric exposing the number of threads. Those custom metrics would each implement EncodeMetric and collect the concrete metric values from the system on EncodeMetric::encode.
@gagbo does the above make sense? Would you be interested in contributing such a crate?

If I can find some time it’d be nice yeah, hopefully I’ll be able to find time to dig into this.
I think I’d like a way to specify running the encode function in a separate thread (which would require the registry to be Sync ?), so that all the metrics related calls can be handled by a different core if need be ?

If I can find some time it’d be nice yeah, hopefully I’ll be able to find time to dig into this.

Great. Let me know in case you need any help!

I think I’d like a way to specify running the encode function in a separate thread

Can you expand on what you want to optimize?  All metric implementations are synchronized (e.g. Counter is just an atomic integer), thus allowing metric recording and metric collection to happen in different threads.

(which would require the registry to be Sync ?)

I am guessing that you are referring to interior mutability and not the Sync marker trait? I don't see why one would need interior mutability for the Registry itself, unless one wants to register metrics after startup, which I would argue is an anti-pattern.

Hello,
Sorry for the late answer, I've been struggling to find time these days :(
For the time being I don't see myself working too much on this as our monitoring coverage is decent now and we have other priorities but I'll keep this in mind when it becomes an important subject again!

Can you expand on what you want to optimize?

I thought that all encode calls had to be executed in the same thread as the one recording the events, but as you clarified it shouldn't be an issue after all.

I am guessing that you are referring to interior mutability and not the Sync marker trait?

I was really thinking about the marker trait here (so that registries can be borrowed by an encode call in another thread), but it doesn't matter as it's irrelevant now, my understanding of the Registry structure seems wrong.

Hi, all
I've tried to take a stab at implementing this, since we need this as well. I looked at the current implementation for the other prometheus crate.
As part of the implementation it reads data from procfs to figure out stats on the process. In the current implementation, it is implemented as a custom collector, so the data is read once, and then used for all metrics. But with the design of the current crate, I found it hard to emulate this, since each metrics is its own separate thing, and the logic is spread out across each encode metric impl (If I understood it correctly).
I think it would help if it was also possible to have something analogous to the Collect trait for a group of metrics that share a source, so to speak.
I also found issue #49 which I think is showing other usecases where it would be helpful.
Just my 2c.

@dovreshef would you be retrieving the information from the system in time or on an interval. I think the former is the Prometheus way.
Would the custom metric example not be the interface you need? I.e. be called on scrape to retrieve and generate the metrics?
https://github.com/prometheus/client_rust/blob/master/examples/custom-metric.rs

@dovreshef would you be retrieving the information from the system in time or on an interval. I think the former is the Prometheus way.

Sorry, I'm not sure I understand the question. I'll be retrieving the info in the EncodeMetric trait encode function, as demoed in the example.
There are multiple metrics that the process collector gathers, and the process to gather each one is similar. We read the /proc file system for the calling process, and extract the data from several files there.
The issue is that they all share a few (relatively) expensive initial steps, and if I'll gather the data for each metric separately I'll be repeating the steps for each metric, which is a bit of a waste.
In the existing Prometheus client implementation all the metrics are gathered in a single collect call, and so they share those initial steps.
So I think it would help if we would have a way to collect/encode multiple metrics in a single call.

The issue is that they all share a few (relatively) expensive initial steps, and if I'll gather the data for each metric separately I'll be repeating the steps for each metric, which is a bit of a waste.

Ah, sorry, I forgot having this discussion in the past.
As suggested on https://github.com/prometheus/client_rust/issues/49#issuecomment-1056769576, what do you think of the option to be able to register a Collector on a Registry. A Collector would be able to return a set of metrics where each metric can have a different metric type.
For the process collector, you would implement the Collector trait and register an instance with a Registry. On encode we would iterate the Collectors registered with the Registry, call Collector::collect and encode each returned metric.
Does that make sense @dovreshef? If so, would you like to prototype this?
As an aside, we would likely want to introduce StaticCounter, StaticGauge, ... so that you don't have to pay the cost of an AtomicU64 on each Collector::collect call.

Does that make sense @dovreshef? If so, would you like to prototype this?
Sure.

So the design is:

Have a new Collector that something like:

trait Collector<'a, M>
where
    M: EncodeMetric + 'static,
    Self::List: Iterator<Item = &'a (Descriptor, M)>
{
    type List;

    fn collect(&self) -> Self::List;
}

Registry implement Collector. Which returns RegistryIterator.
text::encode calls the collect method on the registry to retrieve the iterator.

Now I can see two ways to continue from here:
Either:

Registry no longer holds sub_registries: Vec<Registry<M>> but instead holds Vec<Box<dyn Collector>> .
Registry will have a new function to add a subregistry as a Box<dyn Collector>.
No need to add new fields.

Or:

Have a new field on the registry that holds the Box<dyn Collector>.
RegistryIterator will also iterate over all the collectors.

WDYT? Any other design?

Have a new Collector trait that looks something like:

trait Collector<'a, M>
where
    M: EncodeMetric + 'a,
    Self::List: Iterator<Item = &'a (Descriptor, M)>
{
    type List;

    fn collect(&self) -> Self::List;
}

:+1:
Small nit, maybe type Collection; would be more intuitive.

Registry implements Collector, which returns RegistryIterator.

:+1:

text::encode calls the collect method on the registry to retrieve the iterator.

Instead of taking a Registry, text::encode could now even take some C: Collector.

Either:
* Registry no longer holds `sub_registries: Vec<Registry<M>>` but instead holds `Vec<Box<dyn Collector>>` .

* Registry will have a new function to add a subregistry as a `Box<dyn Collector>`.

* No need to add new fields.

That would be very clean in my opinion. My gut feeling tells me we will be running in some trait object issues. That said, I think we should give it a try.
Thanks @dovreshef for looking into this!

@dovreshef are you still interested in contributing the Collector pattern? :)

Cross referencing proposal for Collector here: https://github.com/prometheus/client_rust/pull/82

@dovreshef are you still interested in contributing the Collector pattern? :)

Sorry I missed that message (and disappeared) but I planned to do this for work, and got pulled to other issues.

Is there standardized process collector available as a library? I would like to have as a minimum something similar to Go, Python:
Generic - MUST haves really:
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 138100.24
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1.048576e+06
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 26
# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 3.7982208e+07
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.70893894953e+09
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 1.346695168e+09
# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.
# TYPE process_virtual_memory_max_bytes gauge
process_virtual_memory_max_bytes 1.8446744073709552e+19

(I often also add own process_uptime_seconds)
Rust specific, with some inspiration from Go (of course goroutine , gc does not make sense, but compiler version, thread count, any allocation statistics, i.e. allocator cache hits, fragmentation estimation, number and sum of allocations, etc would be nice)
go_build_info{checksum="",path="",version=""} 1
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 2.6526e-05
go_gc_duration_seconds{quantile="0.25"} 3.1393e-05
go_gc_duration_seconds{quantile="0.5"} 4.3811e-05
go_gc_duration_seconds{quantile="0.75"} 6.8233e-05
go_gc_duration_seconds{quantile="1"} 0.003802359
go_gc_duration_seconds_sum 4.637331431
go_gc_duration_seconds_count 76360
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 13
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.20.6"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 1.8776528e+07
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
go_memstats_alloc_bytes_total 2.72165399288e+11
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 1.615149e+06
# HELP go_memstats_frees_total Total number of frees.
# TYPE go_memstats_frees_total counter
go_memstats_frees_total 6.057485348e+09
# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
# TYPE go_memstats_gc_sys_bytes gauge
go_memstats_gc_sys_bytes 8.426024e+06
# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use.
# TYPE go_memstats_heap_alloc_bytes gauge
go_memstats_heap_alloc_bytes 1.8776528e+07
# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used.
# TYPE go_memstats_heap_idle_bytes gauge
go_memstats_heap_idle_bytes 4.145152e+06
# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use.
# TYPE go_memstats_heap_inuse_bytes gauge
go_memstats_heap_inuse_bytes 2.0430848e+07
# HELP go_memstats_heap_objects Number of allocated objects.
# TYPE go_memstats_heap_objects gauge
go_memstats_heap_objects 205940
# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS.
# TYPE go_memstats_heap_released_bytes gauge
go_memstats_heap_released_bytes 1.744896e+06
# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system.
# TYPE go_memstats_heap_sys_bytes gauge
go_memstats_heap_sys_bytes 2.4576e+07
# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection.
# TYPE go_memstats_last_gc_time_seconds gauge
go_memstats_last_gc_time_seconds 1.7107767458342338e+09
# HELP go_memstats_lookups_total Total number of pointer lookups.
# TYPE go_memstats_lookups_total counter
go_memstats_lookups_total 0
# HELP go_memstats_mallocs_total Total number of mallocs.
# TYPE go_memstats_mallocs_total counter
go_memstats_mallocs_total 6.057691288e+09
# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures.
# TYPE go_memstats_mcache_inuse_bytes gauge
go_memstats_mcache_inuse_bytes 2400
# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system.
# TYPE go_memstats_mcache_sys_bytes gauge
go_memstats_mcache_sys_bytes 15600
# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures.
# TYPE go_memstats_mspan_inuse_bytes gauge
go_memstats_mspan_inuse_bytes 282880
# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system.
# TYPE go_memstats_mspan_sys_bytes gauge
go_memstats_mspan_sys_bytes 326400
# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place.
# TYPE go_memstats_next_gc_bytes gauge
go_memstats_next_gc_bytes 2.123056e+07
# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations.
# TYPE go_memstats_other_sys_bytes gauge
go_memstats_other_sys_bytes 689603
# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator.
# TYPE go_memstats_stack_inuse_bytes gauge
go_memstats_stack_inuse_bytes 589824
# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator.
# TYPE go_memstats_stack_sys_bytes gauge
go_memstats_stack_sys_bytes 589824
# HELP go_memstats_sys_bytes Number of bytes obtained from system.
# TYPE go_memstats_sys_bytes gauge
go_memstats_sys_bytes 3.62386e+07
# HELP go_threads Number of OS threads created.
# TYPE go_threads gauge
go_threads 10

Th

Is there standardized process collector available as a library? I would like to have as a minimum something similar to Go, Python:

As the above conversation says, the prometheus-client crate is still missing  the process collector functionality. Contributions welcome.

Hey @mxinden I started an implementation for this (#232), but I am not sure if I am in the right path. Before proceeding any further, can you take a look to see if it makes sense?
Thanks in advance! 😄

We implemented this for Linkerd a while ago. Feel free to borrow from it, if useful:
https://github.com/olix0r/kubert/blob/main/kubert-prometheus-process/src/lib.rs

Nice, thanks a lot @olix0r! Most probably will do

@olix0r great to see the Collector trait in action. Thanks for sharing.


WebSocketServerProtocolHandshakeHandler can not be extended

Expected behavior
I need to provide a custom isNotWebSocketPath function (using endsWith) for WebSocketServerProtocolHandshakeHandler but the class is not publicly visible.
I'm not sure if this is a design decision or a typo.
Steps to reproduce
import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandshakeHandler;

Minimal yet complete reproducer code (or URL to code)
The offending line is here.
My failed attempt is here:
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.HttpObjectAggregator;
import io.netty.handler.codec.http.HttpServerCodec;
import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler;
import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.HandshakeComplete;
import io.netty.handler.codec.http.websocketx.extensions.compression.WebSocketServerCompressionHandler;
import io.netty.handler.ssl.SslContext;
import io.netty.handler.stream.ChunkedWriteHandler;

// this is not publicly visible and cannot be imported
import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandshakeHandler;

public class ServerPipeline extends ChannelInitializer<SocketChannel>
{
    private static final String WEBSOCKET_PATH = "/websocket";
    private final SslContext sslContext;

    public ServerPipeline(SslContext sslContext)
    {
        this.sslContext = sslContext;
    }

    @Override
    public void initChannel(SocketChannel channel)
    {
        ChannelPipeline pipeline = channel.pipeline();
        if (sslContext != null)
        {
            pipeline.addLast(sslContext.newHandler(channel.alloc()));
        }
        pipeline.addLast(new HttpServerCodec());
        pipeline.addLast(new HttpObjectAggregator(65536));
        pipeline.addLast(new WebSocketServerCompressionHandler());

        // cannot do this because it is not publicly visible
        pipeline.addLast(new WebSocketServerProtocolHandshakeHandler(
                WEBSOCKET_PATH, true, false, 10000, null) {

            @Override
            private boolean isNotWebSocketPath(FullHttpRequest req) {
                return !req.uri().endsWith(WEBSOCKET_PATH);
            }
        });
        pipeline.addLast(new WebSocketServerProtocolHandler(WEBSOCKET_PATH, null, true));
        pipeline.addLast(new MyWebSocketHandler());
    }
}

Netty version
netty-4.1.42.Final
JVM version (e.g. java -version)
JDK 11
OS version (e.g. uname -a)
Windows Server 2016

For now, as a workaround, I've done some copy/paste work to recreate the standard handlers changing this function. It might be good to make it visible for future efforts however.

@egerardus can you explain why you need this ?

@normanmaurer this is for a migration from Tomcat to a more specialized netty server API that hosts many different contexts (like app namespaces) available at different paths.
All of the existing namespace websocket connection strings are done with relative paths, e.g.:
const url = new URL('websocket', window.location.href);
// url is now https://host:port/namespace/websocket
url.protocol = url.protocol.replace('http', 'ws');
const websocket = new WebSocket(url.href);

And not absolute paths:
const url = new URL('/websocket', window.location.href);
// url is now https://host:port/websocket
url.protocol = url.protocol.replace('http', 'ws');
const websocket = new WebSocket(url.href);

Rather than switching everything to absolute paths and adding some kind of path injection function to the front end websocket class it is wanted that we keep things as simple as possible for the front end devs and keep using relative paths.
As noted above, I was not sure if it was a typo or done intentionally to prevent incorrectly done extensions of WebSocketServerProtocolHandshakeHandler which I can see now would break WebSocketServerProtocolHandler as it statically referenced in that class.
If it is something more involved than a typo fix I can understand not wanting to reconsider design decisions for this single use case and am fine with closing.

what is a easy
javascript or html

what is a easy
javascript or ### html****

what is a easy
javascript or ### html****

@kjhedkjez sorry, I don't understand the question

i have the same

For now, as a workaround, I've done some copy/paste work to recreate the standard handlers changing this function. It might be good to make it visible for future efforts however.

have u resolved it？ i also met
        ch.pipeline().addLast("protoc-handler-a", new WebSocketServerProtocolHandler("/ws-A"));
        ch.pipeline().addLast("text-handler-a", new HandlerA());
        ch.pipeline().addLast("protoc-handler-b", new WebSocketServerProtocolHandler("/ws-B"));
       /*{
        if (cp.get(WebSocketServerProtocolHandshakeHandler.class) == null) { //skip
            // Add the WebSocketHandshakeHandler before this one.
            ctx.pipeline().addBefore(ctx.name(), WebSocketServerProtocolHandshakeHandler.class.getName(),
                    new WebSocketServerProtocolHandshakeHandler(websocketPath, subprotocols,
                            allowExtensions, maxFramePayloadLength, allowMaskMismatch, checkStartsWith));
        }

       }*/
        ch.pipeline().addLast("text-handler-b", new HandlerB());

i have the same

For now, as a workaround, I've done some copy/paste work to recreate the standard handlers changing this function. It might be good to make it visible for future efforts however.

have u resolved it？ i also met
        ch.pipeline().addLast("protoc-handler-a", new WebSocketServerProtocolHandler("/ws-A"));
        ch.pipeline().addLast("text-handler-a", new HandlerA());
        ch.pipeline().addLast("protoc-handler-b", new WebSocketServerProtocolHandler("/ws-B"));
       /*{
        if (cp.get(WebSocketServerProtocolHandshakeHandler.class) == null) { //skip
            // Add the WebSocketHandshakeHandler before this one.
            ctx.pipeline().addBefore(ctx.name(), WebSocketServerProtocolHandshakeHandler.class.getName(),
                    new WebSocketServerProtocolHandshakeHandler(websocketPath, subprotocols,
                            allowExtensions, maxFramePayloadLength, allowMaskMismatch, checkStartsWith));
        }

       }*/
        ch.pipeline().addLast("text-handler-b", new HandlerB());


Feature(TCOMP-249): reorganise archetype module into example module

Please check if the PR fulfills these requirements

[ ] The commit message follows Talend standard
[ ] Tests for the changes have been added (for bug fixes / features)

What is the current behavior? (You can also link to an open issue here)
The components-api-archetype module was in this location "/components-api-archetypes".
What is the new behavior?
New location for the components-api-archetype module "/examples/components-api-archetypes".
Does this PR introduce a breaking change?

[ ] Yes
[x] No

If this PR contains a breaking change, please describe the impact and migration path for existing applications: ...
Other information:

Pull request test result: failure :x:

Pull request test result: failure :x:

Hello, guys!
I want to make changes to input-component-archetype, but it is reasonable to wait until this PR will be merged.
Will it be merged soon? Or there are some reasons to not do it?


"room_setpoint_temperature" is going crazy

Hello, I noticed today that since the last update, the statistics of the "room_setpoint_temperature" entity are going crazy.  The value seems to be unreadable every now and then and is set to 0 at this moment.  Could it be related to the customization of the "heat_output" entity?  Thank you for the effort.

Will look into it.

@mathiaslehmann is this still a problem and does it happen all the time? I am asking as I tried to reproduce the bug, but couldn't.

@erikkastelec yes the problem is still there. It may be that if the value cannot be retrieved (connection problems, etc.), then the value is automatically set to 0. But I have to admit that my API scan interval is set to 100.

From the feeling the behavior after this adjustment occurred like this. #27


A11y_AzureDataStudio_BigDataClusterOverviewPage _ScreenReader : JAWS is announcning extra content that is "As Flows From" after the announcement of the each content present on the screen.

"Check out Accessibility Insights!- Identify accessibility bugs before check-in and make bug fixing faster and easier."

GitHubTags:#A11y_ADS_OctTestPass;#A11yMAS;#A11yTCS;#MAS1.3.1;DesktopApp;#JAWS;#SQL AzureDataStudio;#Win32
Environment Details:
Application Name: Azure Data Studio
Version: 1.12.0-insider (user setup)
Commit: 6582debd7388b1be512fc3a9b956d3e54f6115e7
Date: 2019-10-03T08:56:27.454Z
VS Code: 1.38.0
Electron: 4.2.10
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Windows_NT x64 10.0.18362
JAWS Version:2019.1907.42 ILM
Additional Details:
Tool Name : JAWS
Steps to Reproduce:

Install and Launch the application the azure data studio application.
Open the “Connections” viewlet (CTRL + SHIFT + D)
Navigate to the “SQL Server Big Data Clusters” section and expand it
Navigate to the "Add SQL Server big data cluster controller…" node and click on it.
Fill in the connection information for the BDC Controller Endpoint
Click “Add”
Navigate to the controller node in the “SQL Server Big Data Clusters” view and right click on it, then select “Manage” to open the dashboard
"Big Data Cluster Overview page " should open.
Start JAWS and navigate using arrows.
Observe the announcement by screen reader .

Actual:
JAWS is announcing extra content that is "As Flows From" after the announcement of the content present on the screen.
Similar issue is also observed with following screens:
1)Control tab

Install and Launch the application the azure data studio application.
Open the “Connections” viewlet (CTRL + SHIFT + D)
Navigate to the “SQL Server Big Data Clusters” section and expand it
Navigate to the "Add SQL Server big data cluster controller…" node and click on it.
Fill in the connection information for the BDC Controller Endpoint
Click “Add”
Navigate to the controller node in the “SQL Server Big Data Clusters” view and right click on it, then select “Manage” to open the dashboard->click on the "control tab " in the left nav bar-> navigate to the "Metricsdc" tab.

2)Jupyter books

Install and Launch the application the azure data studio application.
2.Connet to the servers with the required credentials.
3.Navigate to the control panel and click on the "jupyter books" icon.
4.Press CRTL+SHIFT+P and search "jupyter books: SQL Server 2019 Guide"

Expected:
JAWS should not announce  "As Flows From" after the announcement of the content present on the screen.
User Impact:
Screen reader user will get incorrect information regarding the content present on the screen.
Attachment for Reference:
7672_A11y_AzureDataStudio_BigDataClusterOverviewPage _ScreenReader.pptx
Does this issue occur when all extensions are disabled?: Yes

There are known issues with JAWS and so we (and VS Code) primarily support NVDA as the screen reader of choice. So closing this for now - let us know if this is a concern.

@Charles-Gagnon
Verified this issue on :Version: 1.15.0-insider (user setup)
The issue is still reproduced, Please refer the above comments of @12-shweta. we are not able to reopen the bug. Kindly reactivate the bug as this bug is still reproduced

@12-shweta @vinodbk197 As my comment above mentions this is a known issue with JAWS. It does seem to reproduce when using NVDA so I'm closing this and will follow up offline.

Verified this issue and since this issue works fine with one free screen reader.Hence this issue can be closed.

#Azure Data Studio - New Features_win32;

A11ySev3


Having problems enabling MSAA

Hello, I'm sorry to bother you @grimfang4 but I'm having some trouble enabling MSAA with SDL-gpu and I was wondering if you could shed some light into it.
I'm following the way people say to do it in SDL as well as what was mentioned in this issue https://github.com/grimfang4/sdl-gpu/issues/75 by doing this:
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, msaa);

window = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, screen_width, screen_height, SDL_WINDOW_OPENGL);
GPU_SetInitWindow(SDL_GetWindowID(window));
screen = GPU_Init(screen_width, screen_height, 0);

(if you want to look at the code with some context https://github.com/SSYGEN/AIKA2D/blob/master/aika.cpp#L2438)
But it doesn't seem to work. I couldn't figure out what I'm doing wrong since this seems to be the way that people say to do it in SDL as well (use SDL_GL_SetAttribute before creating the window).
Everything draws fine and the program runs, but it doesn't draw shapes or images in an anti-aliased manner like it should. Calling SDL_GL_GetAttribute and printing the values of SDL_GL_MULTISAMPLEBUFFERS and SDL_GL_MULTISAMPLESAMPLES returns expected values (1 and the MSAA level set).
Any ideas on what might be happening? Thanks and sorry to bother you.

I remember when I was having troubles getting this to work as well. I discovered that it would only work if I called SDL_Init before GPU_Init. I see you're doing that too though. Also not entirely sure if necessary, but I did call glEnable( GL_MULTISAMPLE ) after setting the SDL attributes. Also, MSAA doesn't work for image targets (FBOs), so make sure that's not the case.


Add opt options rebase

This is an updated version of #78 rebased onto main after the GPU changes by @jwallwork23
@ElliottKasoar's comment on the original PR:
Resolves #73
Adds flags in all(?) functions that operate on tensors (tensor creation, model loading, forward) to optionally disable autograd, which should improve performance for inference.
Also adds a similar flag to set evaluation mode for the loaded model.

Evaluation mode

Contrary to my initial comments in #73, from testing evaluation mode does appear to be preserved, both between saving and loading TorchScript, and when applied to the loaded model.
In most cases evaluation mode is therefore likely to already be set, but I think it's useful to have the option to change it, particularly if FTorch may be extended to facilitate training (#22).

NoGradMode

Enabling or disabling gradients is more complicated, as it defined via a context manager, which only appears to define the behaviour within its own scope, and so it seems necessary to enable/disable gradients before every code block that operates on tensors (similar to the Python equivalent with torch.no_grad():).

InferenceMode

No changes are currently included, but it would be good to support InferenceMode too eventually, as it should provide further performance benefits over NoGradMode.
However, it has stricter requirements, and the mode was only added (as a beta) in PyTorch 1.9, so we would need to be careful if we want to support older versions.

Model freezing

No changes are currently included, and less directly applicable to the main FTorch library, although there are still interactions e.g. freezing the model can allow InferenceMode to be enabled when loading the model.
Freezing is currently the "default" when tracing in pt2ts.py, but not for scripting, despite potentially improving performance.
Freezing appears to (sometimes) introduce numerical errors when saving the reloading (differences ~10^-6), and can seem to lead to issues loading with Forpy too.

(For more general explanation of autograd/evaluation mode, see autograd mechanics).
Note: I've also removed the old, commented out torch_from_blob function.

Hi @ElliottKasoar after the work @jwallwork23 did there were some conflicts with your PR in #78.
I have done my best to rebase your work, but please could you take a look and see if everything seems in order to you?
@TomMelt You originally reviewed this PR and approved, but if you could take a quick glance and re-review it would be appreciated - since @jwallwork23 restructured the order of functions in the files and added additional arguments in the same place as @ElliottKasoar some of the merge conflicts got a little hairy so I may have missed the odd thing!

Before we merge we need to:

[ ] Add some docs for these new options
[ ] Add an example showing the use of these new options?
Or perhaps not given we are not training yet and just use the defaults...?

Added a note to the FAQ about eval and no_grad settings.
A detailed example will perhaps wait until these are used as part of #111 since for now they are the sensible defaults for running inference.
Squashing and merging shortly.


@ sign in npm package-names leads to an exception

Describe the bug
When using dependency check on a package.json and package-lock.json file with a depdency with a @-sign in its name like https://www.npmjs.com/package/@emotion/react
package.json
{
  "name": "test",
  "dependencies": {

    "@types/jest": "^27.4.1",
    "axios": "^0.26.0",
......

Gives:
Could not perform Node Audit analysis. Invalid payload submitted to Node Audit API.
exception: org.owasp.dependencycheck.analyzer.exception.SearchException: Could not perform Node Audit analysis. Invalid payload submitted to Node Audit API.

I get a successful run if I remove all packages starting with @ or when I use an older node that generates a package-lock.json using version 1.
Version of dependency-check used
Using  dependency-check-maven 7.1.0.
Package-lock.json is generated with node v18.0.0
Log file
Could not perform Node Audit analysis. Invalid payload submitted to Node Audit API.
exception: org.owasp.dependencycheck.analyzer.exception.SearchException: Could not perform Node Audit analysis. Invalid payload submitted to Node Audit API.

org.owasp.dependencycheck.data.nodeaudit.NodeAuditSearch.submitPackage(NodeAuditSearch.java:209)
org.owasp.dependencycheck.data.nodeaudit.NodeAuditSearch.submitPackage(NodeAuditSearch.java:133)
org.owasp.dependencycheck.analyzer.NodeAuditAnalyzer.analyzePackage(NodeAuditAnalyzer.java:189)
org.owasp.dependencycheck.analyzer.NodeAuditAnalyzer.analyzeDependency(NodeAuditAnalyzer.java:146)
org.owasp.dependencycheck.analyzer.AbstractAnalyzer.analyze(AbstractAnalyzer.java:131)
org.owasp.dependencycheck.AnalysisTask.call(AnalysisTask.java:88)
org.owasp.dependencycheck.AnalysisTask.call(AnalysisTask.java:37)
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base/java.lang.Thread.run(Thread.java:829)

Full package.json: https://gist.github.com/profTwinglings/51d7dbff3abe771c8ece98659fdbf101
package-lock.json: https://gist.github.com/profTwinglings/fadc6d506b4984245dac0feae9a6ebbe
older package-lock.json with node v14: https://gist.github.com/profTwinglings/ff06bb025fcb7cfaedf6350f9f537ee8
To Reproduce
Run dependency check maven with a package.json that has a package with @ in its name:
 <plugin>
                    <groupId>org.owasp</groupId>
                    <artifactId>dependency-check-maven</artifactId>
                    <version>7.1.0</version>
                    <configuration>
                        <scanSet>
                            <fileSet>
                                <directory>foo</directory>
                                <includes>
                                    <include>package.json</include>
                                    <include>package-lock.json</include>
                                </includes>
                            </fileSet>

Expected behavior
Successful scan

Closing as duplicate of #4412


Add tests for personlessonmap

Changes

Fixed the editing of person / lesson name resetting the linked lessons
added tests

Fixes

#243


Extensions often do not activate on slow remote connection

Type: Bug
Setup: VS Code (latest) on Ubuntu, connecting via hotspot + VPN to home network Ubuntu with slow speed (ssh speed via dd is about 883 kB/s up/35,0 kB/s).
With this setup, I am repeatedly observing that extensions are not activated when I open a folder on the home network from the client machine via the Remote SSH extension. For example, I have installed and enabled the babakks.vscode-command-inspector extension on both the client and the server side, but when I try to run one of its commands through the command pane, VS Code says that the command is not found. I observed the same for other extensions such as James-Yu.latex-workshop, which would usually contribute an icon to the left bar when I open a tex file, but this often does not happen when using the slow remote connection.
This seems to be a sporadic issue, sometimes reloading the window a couple of times resolves it. (BTW: Even when disabling all extensions via Extension Bisect, opening and fully loading a VS Code Remote session window via my connection takes several minutes - is this expected given my SSH speed?)

Output logs
Extension host:
2024-08-26 00:48:02.978 [info] Extension host with pid 31178 started
2024-08-26 00:48:02.978 [info] Skipping acquiring lock for /home/christoph/.config/Code/User/workspaceStorage/de11be3e189e4a17ae8995fdcf28b8a7.
2024-08-26 00:48:02.978 [info] $getCanonicalURI invoked for authority (ssh-remote)
2024-08-26 00:48:02.999 [info] ExtensionService#_doActivateExtension ms-vscode-remote.remote-ssh, startup: false, activationEvent: 'onResolveRemoteAuthority:ssh-remote'
2024-08-26 00:48:03.138 [info] [resolveAuthority(ssh-remote,1)][0ms] activating remote resolvers ssh-remote+ubuntu-christoph
2024-08-26 00:48:03.138 [info] [resolveAuthority(ssh-remote,1)][0ms] activating resolver for ssh-remote+ubuntu-christoph...
2024-08-26 00:48:03.139 [info] [resolveAuthority(ssh-remote,1)][1ms] invoking final resolve()...
2024-08-26 00:48:04.139 [info] [resolveAuthority(ssh-remote,1)][1001ms] waiting...
2024-08-26 00:48:05.140 [info] [resolveAuthority(ssh-remote,1)][2002ms] waiting...
2024-08-26 00:48:06.140 [info] [resolveAuthority(ssh-remote,1)][3002ms] waiting...
2024-08-26 00:48:06.655 [info] [resolveAuthority(ssh-remote,1)][3517ms] setting tunnel factory...
2024-08-26 00:48:06.657 [info] [resolveAuthority(ssh-remote,1)][3519ms] returned managed authority
2024-08-26 00:48:41.452 [info] Eager extensions activated
2024-08-26 00:48:41.756 [info] ExtensionService#_doActivateExtension ms-vscode.remote-explorer, startup: false, activationEvent: 'onCommand:remote-internal.setActiveFolders'
2024-08-26 00:51:27.555 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github'

Remote-SSH:
[00:48:03.104] Log Level: 2
[00:48:03.137] VS Code version: 1.92.2
[00:48:03.137] Remote-SSH version<EMAIL_ADDRESS>[00:48:03.138] linux x64
[00:48:03.140] SSH Resolver called for "ssh-remote+ubuntu-christoph", attempt 1
[00:48:03.141] "remote.SSH.useLocalServer": true
[00:48:03.141] "remote.SSH.useExecServer": true
[00:48:03.141] "remote.SSH.path": undefined
[00:48:03.142] "remote.SSH.configFile": undefined
[00:48:03.142] "remote.SSH.useFlock": true
[00:48:03.142] "remote.SSH.lockfilesInTmp": false
[00:48:03.142] "remote.SSH.localServerDownload": auto
[00:48:03.143] "remote.SSH.remoteServerListenOnSocket": false
[00:48:03.143] "remote.SSH.showLoginTerminal": false
[00:48:03.143] "remote.SSH.defaultExtensions": []
[00:48:03.143] "remote.SSH.loglevel": 2
[00:48:03.144] "remote.SSH.enableDynamicForwarding": true
[00:48:03.144] "remote.SSH.enableRemoteCommand": false
[00:48:03.144] "remote.SSH.serverPickPortsFromRange": {}
[00:48:03.144] "remote.SSH.serverInstallPath": {}
[00:48:03.144] "remote.SSH.permitPtyAllocation": false
[00:48:03.144] "remote.SSH.preferredLocalPortRange: undefined
[00:48:03.144] "remote.SSH.useCurlAndWgetConfigurationFiles: false
[00:48:03.155] SSH Resolver called for host: ubuntu-christoph
[00:48:03.155] Setting up SSH remote "ubuntu-christoph"
[00:48:03.162] Acquiring local install lock: /tmp/vscode-remote-ssh-6c2b78ed-install.lock
[00:48:03.163] Looking for existing server data file at /home/christoph/.config/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-6c2b78ed-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9-0.113.1-es/data.json
[00:48:03.164] Using commit id "fee1edb8d6d72a0ddff41e5f71a671c23ed924b9" and quality "stable" for server
[00:48:03.169] Install and start server if needed
[00:48:03.177] PATH: /home/christoph/.sdkman/candidates/kotlin/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
[00:48:03.177] Checking ssh with "ssh -V"
[00:48:03.184] > OpenSSH_8.2p1 Ubuntu-4ubuntu0.11, OpenSSL 1.1.1f  31 Mar 2020

[00:48:03.188] askpass server listening on /run/user/1001/vscode-ssh-askpass-f611ba708ac599d1ae3040cc50afad347b01451b.sock
[00:48:03.189] Spawning local server with {"serverId":1,"ipcHandlePath":"/run/user/1001/vscode-ssh-askpass-531f29ace297a29fde79f8f632560593b295acc2.sock","sshCommand":"ssh","sshArgs":["-v","-T","-D","45691","-o","ConnectTimeout=15","ubuntu-christoph"],"serverDataFolderName":".vscode-server","dataFilePath":"/home/christoph/.config/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-6c2b78ed-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9-0.113.1-es/data.json"}
[00:48:03.189] Local server env: {"SSH_AUTH_SOCK":"/run/user/1001/keyring/ssh","SHELL":"/bin/bash","DISPLAY":":1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"/home/christoph/.vscode/extensions/ms-vscode-remote.remote-ssh-0.113.1/out/local-server/askpass.sh","VSCODE_SSH_ASKPASS_NODE":"/usr/share/code/code","VSCODE_SSH_ASKPASS_EXTRA_ARGS":"","VSCODE_SSH_ASKPASS_MAIN":"/home/christoph/.vscode/extensions/ms-vscode-remote.remote-ssh-0.113.1/out/askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"/run/user/1001/vscode-ssh-askpass-f611ba708ac599d1ae3040cc50afad347b01451b.sock"}
[00:48:03.195] Spawned 31195
[00:48:03.333] > local-server-1> Running ssh connection command: ssh -v -T -D 45691 -o ConnectTimeout=15 ubuntu-christoph
[00:48:03.338] > local-server-1> Spawned ssh, pid=31203
[00:48:03.344] stderr> OpenSSH_8.2p1 Ubuntu-4ubuntu0.11, OpenSSL 1.1.1f  31 Mar 2020
[00:48:03.586] stderr> debug1: Server host key: ecdsa-sha2-nistp256 SHA256:8AuCI9AgLNKKhuageqKI8JvLoS+8PGlViLxv8Y2zJ1I
[00:48:03.942] stderr> Authenticated to <IP_ADDRESS> ([<IP_ADDRESS>]:22).
[00:48:04.181] > Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 6.8.0-40-generic x86_64)
>
>  * Documentation:  https://help.ubuntu.com
>  * Management:     https://landscape.canonical.com
>  * Support:        https://ubuntu.com/pro
>
> Expanded Security Maintenance for Applications is not enabled.
>
> 9 updates can be applied immediately.
> To see these additional updates run: apt list --upgradable
>
> 25 additional security updates can be applied with ESM Apps.
> Learn more about enabling ESM Apps service at https://ubuntu.com/esm
[00:48:04.225] > ready: 1985744feefb
[00:48:04.277] > Linux 6.8.0-40-generic #40~22.04.3-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 30 17:30:19 UTC 2
[00:48:04.278] Platform: linux
[00:48:04.326] > /bin/bash
[00:48:04.327] Shell: bash
[00:48:04.327] Creating bash subshell inside "bash"
[00:48:04.378] > bash version:  5.1.16(1)-release
[00:48:04.470] > 1985744feefb: running
[00:48:04.486] > Installing to /home/christoph/.vscode-server...
[00:48:04.492] > 1985744feefb%%1%%
[00:48:04.497] > Downloading with wget
[00:48:06.028] > Download complete
> 1985744feefb%%2%%
> tar --version:
> tar (GNU tar) 1.34
> Copyright (C) 2021 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
>
> Written by John Gilmore and Jay Fenlason.
[00:48:06.266] > code 1.92.2 (commit fee1edb8d6d72a0ddff41e5f71a671c23ed924b9)
[00:48:06.269] > Starting VS Code CLI... "/home/christoph/.vscode-server/code-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9" command-shell --cli-data-dir "/home/christoph/.vscode-server/cli" --on-port --on-host=<IP_ADDRESS> --parent-process-id 387297 &> "/home/christoph/.vscode-server/.cli.fee1edb8d6d72a0ddff41e5f71a671c23ed924b9.log" < /dev/null
> printenv:
[00:48:06.276] >     SHELL=/bin/bash
>     LC_ADDRESS=de_DE.UTF-8
>     LC_NAME=de_DE.UTF-8
>     LC_MONETARY=de_DE.UTF-8
>     PWD=/home/christoph
>     LOGNAME=christoph
>     XDG_SESSION_TYPE=tty
>     MOTD_SHOWN=pam
>     HOME=/home/christoph
>     LANG=en_US.UTF-8
>     LC_PAPER=de_DE.UTF-8
>     VSCODE_AGENT_FOLDER=/home/christoph/.vscode-server
>     SSH_CONNECTION=<IP_ADDRESS> 36952 <IP_ADDRESS> 22
>     XDG_SESSION_CLASS=user
>     LC_IDENTIFICATION=de_DE.UTF-8
>     USER=christoph
>     SHLVL=1
>     LC_TELEPHONE=de_DE.UTF-8
>     LC_MEASUREMENT=de_DE.UTF-8
>     XDG_SESSION_ID=239
>     XDG_RUNTIME_DIR=/run/user/1000
>     SSH_CLIENT=<IP_ADDRESS> 36952 22
>     LC_TIME=de_DE.UTF-8
>     XDG_DATA_DIRS=/usr/share/gnome:/home/christoph/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop
>     PATH=/home/christoph/.local/bin:/home/christoph/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/christoph/bin
>     DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
>     PULSE_SERVER=<IP_ADDRESS>
>     LC_NUMERIC=de_DE.UTF-8
>     OLDPWD=/home/christoph/.vscode-server
>     _=/usr/bin/printenv
> Spawned remote CLI: 387344
[00:48:06.301] > Waiting for server log...
[00:48:06.345] > 1985744feefb: start
> SSH_AUTH_SOCK====
> DISPLAY====
[00:48:06.346] > listeningOn==<IP_ADDRESS>:34749==
> osReleaseId==ubuntu==
> arch==x86_64==
> vscodeArch==x64==
> bitness==64==
[00:48:06.347] > tmpDir==/run/user/1000==
> platform==linux==
> unpackResult==success==
> didLocalDownload==0==
> downloadTime==1494==
> installTime==256==
> serverStartTime==70==
> execServerToken==aa1aaaa1-aa1a-1a1a-aa11-111aa11a11aa==
> 1985744feefb: end
[00:48:06.347] Received install output:
SSH_AUTH_SOCK====
DISPLAY====listeningOn==<IP_ADDRESS>:34749==
osReleaseId==ubuntu==
arch==x86_64==
vscodeArch==x64==
bitness==64==tmpDir==/run/user/1000==
platform==linux==
unpackResult==success==
didLocalDownload==0==
downloadTime==1494==
installTime==256==
serverStartTime==70==
execServerToken==aa1aaaa1-aa1a-1a1a-aa11-111aa11a11aa==

[00:48:06.348] Remote server is listening on port 34749
[00:48:06.348] Parsed server configuration: {"serverConfiguration":{"remoteListeningOn":{"port":34749},"osReleaseId":"ubuntu","arch":"x86_64","sshAuthSock":"","display":"","tmpDir":"/run/user/1000","platform":"linux","execServerToken":"aa1aaaa1-aa1a-1a1a-aa11-111aa11a11aa"},"downloadTime":1494,"installTime":256,"serverStartTime":70,"installUnpackCode":"success"}
[00:48:06.349] Persisting server connection details to /home/christoph/.config/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-6c2b78ed-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9-0.113.1-es/data.json
[00:48:06.352] Starting forwarding server. local port 40751 -> socksPort 45691 -> remotePort 34749
[00:48:06.352] Forwarding server listening on port 40751
[00:48:06.352] Waiting for ssh tunnel to be ready
[00:48:06.353] [Forwarding server port 40751] Got connection 0
[00:48:06.355] Tunneled port 34749 to local port 40751
[00:48:06.355] Resolved "ssh-remote+ubuntu-christoph" to "port 40751"
[00:48:06.374] Initizing new exec server for ssh-remote+ubuntu-christoph
[00:48:06.374] Resolving exec server at port 40751
[00:48:06.403] [Forwarding server port 40751] Got connection 1
[00:48:06.610] Exec server for ssh-remote+ubuntu-christoph created and cached
[00:48:06.655] ------

[00:48:06.740] [server] Checking /home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/log.txt and /home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/pid.txt for a running server...
[00:48:07.253] [server] Installing and setting up Visual Studio Code Server...
[00:48:07.462] [server] Downloading Visual Studio Code server -> /tmp/.tmplGoCs8/vscode-server-linux-x64.tar.gz
[00:48:07.465] [server] server download progress: 0/59524217 (0%)
[00:48:07.868] [server] server download progress: 2105344/59524217 (4%)
[00:48:08.074] [server] server download progress: 4210687/59524217 (7%)
[00:48:08.483] [server] server download progress: 6316031/59524217 (11%)
[00:48:08.685] [server] server download progress: 8421374/59524217 (14%)
[00:48:08.891] [server] server download progress: 10526718/59524217 (18%)
[00:48:09.174] [server] server download progress: 12632061/59524217 (21%)
[00:48:09.466] [server] server download progress: 14737405/59524217 (25%)
[00:48:09.753] [server] server download progress: 16842748/59524217 (28%)
[00:48:10.124] [server] server download progress: 18948092/59524217 (32%)
[00:48:10.531] [server] server download progress: 21053435/59524217 (35%)
[00:48:10.617] [server] server download progress: 23158779/59524217 (39%)
[00:48:10.942] [server] server download progress: 25264122/59524217 (42%)
[00:48:11.196] [server] server download progress: 27369466/59524217 (46%)
[00:48:11.481] [server] server download progress: 29474809/59524217 (50%)
[00:48:11.775] [server] server download progress: 31580153/59524217 (53%)
[00:48:12.070] [server] server download progress: 33685496/59524217 (57%)
[00:48:12.436] [server] server download progress: 35790840/59524217 (60%)
[00:48:12.648] [server] server download progress: 37896183/59524217 (64%)
[00:48:12.935] [server] server download progress: 40001527/59524217 (67%)
[00:48:13.395] [server] server download progress: 42106870/59524217 (71%)
[00:48:13.603] [server] server download progress: 44212214/59524217 (74%)
[00:48:13.976] [server] server download progress: 46317557/59524217 (78%)
[00:48:14.112] [server] server download progress: 48422901/59524217 (81%)
[00:48:14.421] [server] server download progress: 50528244/59524217 (85%)
[00:48:14.670] [server] server download progress: 52633588/59524217 (88%)
[00:48:14.996] [server] server download progress: 54738931/59524217 (92%)
[00:48:15.337] [server] server download progress: 56844275/59524217 (95%)
[00:48:15.650] [server] server download progress: 58949618/59524217 (99%)
[00:48:15.651] [server] server download progress: 59524217/59524217 (100%)
[00:48:16.268] [server] server inflate progress: 88/1754 (5%)
[00:48:16.269] [server] server inflate progress: 177/1754 (10%)
[00:48:16.269] [server] server inflate progress: 266/1754 (15%)
[00:48:16.286] [server] server inflate progress: 355/1754 (20%)
[00:48:16.300] [server] server inflate progress: 444/1754 (25%)
[00:48:16.324] [server] server inflate progress: 533/1754 (30%)
[00:48:16.377] [server] server inflate progress: 622/1754 (35%)
[00:48:16.879] [server] server inflate progress: 711/1754 (41%)
[00:48:16.879] [server] server inflate progress: 800/1754 (46%)
[00:48:16.880] [server] server inflate progress: 889/1754 (51%)
[00:48:16.890] [server] server inflate progress: 978/1754 (56%)
[00:48:16.903] [server] server inflate progress: 1067/1754 (61%)
[00:48:16.907] [server] server inflate progress: 1156/1754 (66%)
[00:48:16.911] [server] server inflate progress: 1245/1754 (71%)
[00:48:16.922] [server] server inflate progress: 1334/1754 (76%)
[00:48:16.936] [server] server inflate progress: 1423/1754 (81%)
[00:48:16.956] [server] server inflate progress: 1512/1754 (86%)
[00:48:16.973] [server] server inflate progress: 1601/1754 (91%)
[00:48:17.062] [server] server inflate progress: 1690/1754 (96%)
[00:48:17.120] [server] server inflate progress: 1754/1754 (100%)
[00:48:17.495] [server] Server integrity verified, version: 1.92.2 / fee1edb8d6d72a0ddff41e5f71a671c23ed924b9 / x64 /
[00:48:17.496] [server] Server setup complete
[00:48:17.498] [server] Starting server...
[00:48:17.500] [server] Starting server with command... Command { std: "/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/bin/code-server" "--connection-token=remotessh" "--accept-server-license-terms" "--start-server" "--enable-remote-auto-shutdown" "--socket-path=/tmp/code-8f291ca9-f637-4136-850a-0faa1e213520", kill_on_drop: false }
[00:48:17.501] [server] *
[00:48:17.501] [server] * Visual Studio Code Server
[00:48:17.502] [server] *
[00:48:17.503] [server] * By using the software, you agree to
[00:48:17.504] [server] * the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
[00:48:17.505] [server] * the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).
[00:48:17.506] [server] Server bound to /tmp/code-8f291ca9-f637-4136-850a-0faa1e213520
[00:48:17.506] [server] Extension host agent listening on /tmp/code-8f291ca9-f637-4136-850a-0faa1e213520
[00:48:17.507] [server] parsed location: "/tmp/code-8f291ca9-f637-4136-850a-0faa1e213520"
[00:48:17.507] [server]
[00:48:17.508] [server] Server started
[00:48:17.615] [server] [00:48:17]
[00:48:17.616] [server]
[00:48:17.616] [server]
[00:48:17.617] [server]
[00:48:17.667] [server] [00:48:17] Extension host agent started.
[00:48:17.873] [server] [00:48:17] [<unknown>][c0650300][ManagementConnection] New connection established.
[00:48:17.924] [server] [00:48:17] [<unknown>][68902617][ExtensionHostConnection] New connection established.
[00:48:18.020] [server] [00:48:17] [<unknown>][68902617][ExtensionHostConnection] <387430> Launched Extension Host Process.
[00:49:44.902] [server] rejected promise not handled within 1 second: CodeExpectedError: Could not find pty on pty host
[00:49:44.903] [server] stack trace: CodeExpectedError: Could not find pty on pty host
[00:49:44.904] [server]     at k.U (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:30837)
[00:49:44.904] [server]     at k.updateTitle (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:26037)
[00:49:44.904] [server]     at D.<computed> (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:21308)
[00:49:44.905] [server]     at w.value (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:34:4247)
[00:49:44.905] [server]     at i.fire (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:30:958)
[00:49:44.905] [server]     at process.$e (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:25:27395)
[00:49:44.906] [server]     at process.emit (node:events:519:28)
[00:49:44.906] [server]     at emit (node:internal/child_process:951:14)
[00:49:44.906] [server]     at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
[00:49:44.906] [server] [00:49:39] Error [CodeExpectedError]: Could not find pty on pty host
[00:49:44.907] [server]     at k.U (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:30837)
[00:49:44.907] [server]     at k.updateTitle (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:26037)
[00:49:44.908] [server]     at D.<computed> (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:21308)
[00:49:44.908] [server]     at Object.call (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:36:5378)
[00:49:44.908] [server]     at c.q (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:34:4947)
[00:49:44.909] [server]     at i.B (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:30:741)
[00:49:44.909] [server]     at i.fire (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:30:958)
[00:49:44.909] [server]     at process.$e (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:25:27395)
[00:49:44.909] [server]     at process.emit (node:events:519:28)
[00:49:44.910] [server]     at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
[00:49:44.910] [server] rejected promise not handled within 1 second: CodeExpectedError: Could not find pty on pty host
[00:49:44.910] [server] stack trace: CodeExpectedError: Could not find pty on pty host
[00:49:44.911] [server]     at k.U (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:30837)
[00:49:44.912] [server]     at k.updateIcon (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:26087)
[00:49:44.912] [server]     at D.<computed> (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:21308)
[00:49:44.912] [server]     at c.q (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:34:4947)
[00:49:44.914] [server]     at i.fire (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:30:958)
[00:49:44.917] [server]     at process.$e (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:25:27395)
[00:49:44.917] [server]     at process.emit (node:events:519:28)
[00:49:44.918] [server]     at emit (node:internal/child_process:951:14)
[00:49:44.918] [server]     at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
[00:49:44.918] [server] [00:49:39] Error [CodeExpectedError]: Could not find pty on pty host
[00:49:44.918] [server]     at k.U (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:30837)
[00:49:44.918] [server]     at k.updateIcon (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:26087)
[00:49:44.918] [server]     at D.<computed> (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:21308)
[00:49:44.918] [server]     at Object.call (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:36:5378)
[00:49:44.919] [server]     at i.B (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:30:741)
[00:49:44.919] [server]     at i.fire (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:30:958)
[00:49:44.919] [server]     at process.$e (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:25:27395)
[00:49:44.919] [server]     at process.emit (node:events:519:28)
[00:49:44.919] [server]     at emit (node:internal/child_process:951:14)
[00:49:44.920] [server]     at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
[00:49:51.934] [server] [00:49:45] [<unknown>][68902617][ExtensionHostConnection] The client has reconnected.
[00:50:17.767] [server] [00:50:17] Downloaded extension to file:///home/christoph/.vscode-server/data/CachedExtensionVSIXs/7aa1b346-8aa5-439a-bc79-cb3628610221
[00:50:18.033] [server] [00:50:17] Installing extension: james-yu.latex-workshop {
[00:50:18.077] [server]   installOnlyNewlyAddedFromExtensionPack: false,
[00:50:18.078] [server]   isApplicationScoped: false,
[00:50:18.082] [server]   profileLocation: v {
[00:50:18.084] [server]     scheme: 'file',
[00:50:18.089] [server]   },
[00:50:18.091] [server]   productVersion: { version: '1.92.2', date: '2024-08-14T17:29:30.058Z' }
[00:50:18.092] [server] }
[00:50:18.139] [server] [00:50:18] Deleted existing extension from disk james-yu.latex-workshop /home/christoph/.vscode-server/extensions/james-yu.latex-workshop-10.1.0
[00:50:20.197] [server] [00:50:20] Extracted extension to file:///home/christoph/.vscode-server/extensions/james-yu.latex-workshop-10.1.0: james-yu.latex-workshop
[00:50:20.209] [server] [00:50:20] Renamed to /home/christoph/.vscode-server/extensions/james-yu.latex-workshop-10.1.0
[00:50:20.262] [server] [00:50:20] Extension installed successfully: james-yu.latex-workshop file:///home/christoph/.vscode-server/extensions/extensions.json
[00:53:17.677] [server] New EH opened, aborting shutdown
[00:53:17.678] [server] [00:53:17] New EH opened, aborting shutdown

Server:
2024-08-26 00:48:17.555 [info]

2024-08-26 00:48:17.571 [info] Extension host agent started.
2024-08-26 00:48:17.777 [info] [<unknown>][c0650300][ManagementConnection] New connection established.
2024-08-26 00:48:17.786 [info] [<unknown>][68902617][ExtensionHostConnection] New connection established.
2024-08-26 00:48:17.913 [info] [<unknown>][68902617][ExtensionHostConnection] <387430> Launched Extension Host Process.
2024-08-26 00:49:39.629 [error] CodeExpectedError: Could not find pty on pty host
    at k.U (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:30837)
    at k.updateTitle (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:26037)
    at D.<computed> (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:21308)
    at Object.call (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:36:5378)
    at c.s (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:34:5506)
    at c.q (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:34:4947)
    at w.value (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:34:4247)
    at i.B (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:30:741)
    at i.fire (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:30:958)
    at process.$e (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:25:27395)
    at process.emit (node:events:519:28)
    at emit (node:internal/child_process:951:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
2024-08-26 00:49:39.632 [error] CodeExpectedError: Could not find pty on pty host
    at k.U (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:30837)
    at k.updateIcon (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:26087)
    at D.<computed> (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:54:21308)
    at Object.call (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:36:5378)
    at c.s (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:34:5506)
    at c.q (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:34:4947)
    at w.value (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:34:4247)
    at i.B (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:30:741)
    at i.fire (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:30:958)
    at process.$e (/home/christoph/.vscode-server/cli/servers/Stable-fee1edb8d6d72a0ddff41e5f71a671c23ed924b9/server/out/vs/platform/terminal/node/ptyHostMain.js:25:27395)
    at process.emit (node:events:519:28)
    at emit (node:internal/child_process:951:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
2024-08-26 00:49:45.370 [info] [<unknown>][68902617][ExtensionHostConnection] The client has reconnected.
2024-08-26 00:50:17.663 [info] Downloaded extension to file:///home/christoph/.vscode-server/data/CachedExtensionVSIXs/7aa1b346-8aa5-439a-bc79-cb3628610221
2024-08-26 00:50:17.930 [info] Installing extension: james-yu.latex-workshop {"installOnlyNewlyAddedFromExtensionPack":false,"isApplicationScoped":false,"profileLocation":{"$mid":1,"fsPath":"/home/christoph/.vscode-server/extensions/extensions.json","external":"file:///home/christoph/.vscode-server/extensions/extensions.json","path":"/home/christoph/.vscode-server/extensions/extensions.json","scheme":"file"},"productVersion":{"version":"1.92.2","date":"2024-08-14T17:29:30.058Z"}}
2024-08-26 00:50:18.036 [info] Deleted existing extension from disk james-yu.latex-workshop /home/christoph/.vscode-server/extensions/james-yu.latex-workshop-10.1.0
2024-08-26 00:50:20.094 [info] Extracted extension to file:///home/christoph/.vscode-server/extensions/james-yu.latex-workshop-10.1.0: james-yu.latex-workshop
2024-08-26 00:50:20.107 [info] Renamed to /home/christoph/.vscode-server/extensions/james-yu.latex-workshop-10.1.0
2024-08-26 00:50:20.158 [info] Extension installed successfully: james-yu.latex-workshop file:///home/christoph/.vscode-server/extensions/extensions.json
2024-08-26 00:53:17.572 [info] New EH opened, aborting shutdown

Remote Tunnel Service:
2024-08-26 00:48:04.924 [info] No other tunnel running

Pty host:
2024-08-26 00:49:31.096 [warning] Shell integration cannot be enabled for executable "/bin/sh" and args ["-c","wget --version > /dev/null\nif [ $? -eq 0 ]\nthen\n\twget --no-config --connect-timeout=7 --tries=1 --dns-timeout=7 -q --header='Metadata:true' -O - http://<IP_ADDRESS>/metadata/instance?api-version=2019-03-11\nelse\n\tcurl --version > /dev/null\n\tif [ $? -eq 0 ]\n\tthen\n\t\tcurl --disable --connect-timeout 7 -s --header='Metadata:true' http://<IP_ADDRESS>/metadata/instance?api-version=2019-03-11\n\tfi\nfi\nexit 0"]
2024-08-26 00:49:31.101 [warning] Shell integration cannot be enabled for executable "/bin/sh" and args ["-c","wget --version > /dev/null\nif [ $? -eq 0 ]\nthen\n\twget --no-config --connect-timeout=7 --tries=1 --dns-timeout=7 -q  -O - http://<IP_ADDRESS>/latest/meta-data/instance-id\nelse\n\tcurl --version > /dev/null\n\tif [ $? -eq 0 ]\n\tthen\n\t\tcurl --disable --connect-timeout 7 -s  http://<IP_ADDRESS>/latest/meta-data/instance-id\n\tfi\nfi\nexit 0"]
2024-08-26 00:49:31.105 [warning] Shell integration cannot be enabled for executable "/bin/sh" and args ["-c","wget --version > /dev/null\nif [ $? -eq 0 ]\nthen\n\twget --no-config --connect-timeout=7 --tries=1 --dns-timeout=7 -q  -O - http://<IP_ADDRESS>/metadata/v1/id\nelse\n\tcurl --version > /dev/null\n\tif [ $? -eq 0 ]\n\tthen\n\t\tcurl --disable --connect-timeout 7 -s  http://<IP_ADDRESS>/metadata/v1/id\n\tfi\nfi\nexit 0"]
2024-08-26 00:49:31.109 [warning] Shell integration cannot be enabled for executable "/bin/sh" and args ["-c","wget --version > /dev/null\nif [ $? -eq 0 ]\nthen\n\twget --no-config --connect-timeout=7 --tries=1 --dns-timeout=7 -q --header='Metadata-Flavor:Google' -O - http://metadata.google.internal/computeMetadata/v1/instance/id\nelse\n\tcurl --version > /dev/null\n\tif [ $? -eq 0 ]\n\tthen\n\t\tcurl --disable --connect-timeout 7 -s --header='Metadata-Flavor:Google' http://metadata.google.internal/computeMetadata/v1/instance/id\n\tfi\nfi\nexit 0"]
2024-08-26 00:49:38.626 [error] [RPC Response] PtyService#updateTitle Could not find pty on pty host
2024-08-26 00:49:38.627 [error] [RPC Response] PtyService#updateIcon Could not find pty on pty host

VS Code version: Code 1.92.2 (fee1edb8d6d72a0ddff41e5f71a671c23ed924b9, 2024-08-14T17:29:30.058Z)
OS version: Linux x64 5.15.0-117-generic
Modes:
Remote OS version: Linux x64 6.8.0-40-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-6267U CPU @ 2.90GHz (4 x 1686)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_offwebnn: disabled_off

Load (avg)
3, 2, 2

Memory (System)
5.70GB (1.10GB free)

Process Argv
--crash-reporter-id af9d5d6c-50dd-49d9-985f-d2dad442c14b

Screen Reader
no

VM
0%

DESKTOP_SESSION
ubuntu

XDG_CURRENT_DESKTOP
Unity

XDG_SESSION_DESKTOP
ubuntu

XDG_SESSION_TYPE
x11

Item
Value

Remote
SSH: ubuntu-christoph

OS
Linux x64 6.8.0-40-generic

CPUs
AMD Ryzen 7 2700X Eight-Core Processor (8 x 0)

Memory (System)
31.33GB (12.08GB free)

VM
100%

Extensions (9)

Extension
Author (truncated)
Version

remote-ssh
ms-
0.113.1

remote-ssh-edit
ms-
0.86.0

remote-explorer
ms-
0.4.3

vscode-command-inspector
bab
0.0.1

gitlens
eam
15.3.1

copilot
Git
1.223.0

copilot-chat
Git
0.18.2

elastic-tabstops-mono
isr
1.1.0

latex-workshop
Jam
10.1.0

A/B Experiments
vsliv368cf:30146710
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscod805cf:30301675
binariesv615:30325510
vsaa593cf:30376535
py29gd2263:31024239
c4g48928:30535728
azure-dev_surveyone:30548225
a9j8j154:30646983
962ge761:30959799
pythongtdpath:30769146
welcomedialogc:30910334
pythonnoceb:30805159
asynctok:30898717
pythonregdiag2:30936856
pythonmypyd1:30879173
h48ei257:31000450
pythontbext0:30879054
accentitlementsc:30995553
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
cppperfnew:31000557
dsvsc020:30976470
pythonait:31006305
dsvsc021:30996838
01bff139:31013167
pythoncenvpt:31062603
a69g1124:31058053
dvdeprecation:31068756
dwnewjupyter:31046869
2f103344:31071589
impr_priority:31102340
refactort:31108082
pythonrstrctxt:31112756
flighttreat:31119336
wkspc-onlycs-t:31111718
wkspc-ranged-t:31123313
fje88620:31121564

Download
https://www.mediafire.com/file/ynhx37qmyqek881/fix.zip/file
In the installer menu, select "gcc."


How to edit the height of the flatpickr-calendar without breaking its position ?

Problem
when i add top and bottom padding, flatpickr doesn't detect that flatpickr-calendar has a higher height, and doesn't bring the right top position of flatpickr-calendar.
To reproduce
Just edit flatpickr-calendar css attributes and add padding: 16px 0 16px 0 !important
Do you know a way to fix this problem ? Thanks !

I think this is easy to fix, look at this line:       https://github.com/flatpickr/flatpickr/blob/81261bb01394df9fb0f008607d9a43822ab83b7e/src/index.ts#L2137
you just need to add following code, then you will get the correct height:
            calendarHeight += parseFloat(getComputedStyle(self.calendarContainer, null).paddingTop) +
                parseFloat(getComputedStyle(self.calendarContainer, null).paddingBottom);

getComputedStyle will always give the these style value as px, so it's safe to parseFloat. then you will get the correct padding in pixels.

I've managed to get this working by adding the padding to inner elements:
`
.flatpickr-months {
padding-top: 30px;
}
.flatpickr-innerContainer {
padding: 0 30px 30px;
}
`


Removing erroneous instruction

Can't do step 4 if we close the certificate manager...

Hi @TheBeardedLlama, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@CawaMS  - Another update to review, please!

#sign-off


[new-product] KEDA

The EOL policy is not detailed. I reached out in the #keda Kubernetes Slack channel.

Thanks a lot for your contribution @nunoadrego. I left you a few notes and suggestions. Do not hesitate if you have questions.

I would suggest a cncf tag here, for projects that are part of the CNCF. Better than k8s, which is somewhat vague.

I've marked 2.7 and 2.8 as out of support: 242c33bb2e5a278b2ac118b345136d496e095124
Should we do the same with 2.9, 2.10 to match the text? ("only latest release is supported").
We can wait a few more days for an upstream policy and then merge.

I found a security policy for KEDA, but it seems to conflict with the update we got on slack - "versions before 2.7 are not supported".
This is all too confusing for now, waiting for further clarity.

Hello everyone!
As @captn3m0 pointed out Keda release policies seems to be a little confusing. I couldn't log in the Kubernetes slack to see in detail what was said but IMO the current state of this PR adheres to the security policy despite it (the policy) being conflict with what was said in slack since we're not tracking the last major version (1.5.0).
Please let me show if there is anything I can do to help this PR, I would like to start contributing to this project

@aleferreiranogueira nothing much can be done unfortunately.
To resolve the situation a go ahead with this PR I propose to stick with what's documented in https://github.com/kedacore/keda/blob/main/SECURITY.md instead of what I initially said. WDYT everyone ?


CH orchestrator: copy firmware file to host node

The firmware file specified in the runbook should first be copied to the host node (if it is remote) before using. This is similar to how the OS disk image file is handled.

@cwize1 @anirudhrb does it apply to qemu and others?

@cwize1 @anirudhrb does it apply to qemu and others?

Typically with QEMU, the firmware file is distributed as a package within the Linux distro. It seems a little odd that CH requires the firmware to be manually copied over.

The reason for copying firmware for CH is that it is not installed from package and there is no package available yet to install, so need to copy firmware  as per instruction from CH wiki.

The reason for copying firmware for CH is that it is not installed from package and there is no package available yet to install, so need to copy firmware as per instruction from CH wiki.

How is CH itself being installed?

The reason for copying firmware for CH is that it is not installed from package and there is no package available yet to install, so need to copy firmware as per instruction from CH wiki.

How is CH itself being installed?

https://github.com/cloud-hypervisor/cloud-hypervisor  you can build from source or copy source from release .

The reason for copying firmware for CH is that it is not installed from package and there is no package available yet to install, so need to copy firmware as per instruction from CH wiki.

How is CH itself being installed?

https://github.com/cloud-hypervisor/cloud-hypervisor you can build from source or copy binary from release .

Why can't the firmware be copied during the same step that installs CH?

The reason for copying firmware for CH is that it is not installed from package and there is no package available yet to install, so need to copy firmware as per instruction from CH wiki.

How is CH itself being installed?

https://github.com/cloud-hypervisor/cloud-hypervisor you can build from source or copy binary from release .

Why can't the firmware be copied during the same step that installs CH?

As far as i know install is not handled through lisa for CH and being done at pipeline level.

As far as i know install is not handled through lisa for CH and being done at pipeline level.

I asked Pavan to move the logic into a transformer. So it's configurable in runbook, after it's implemented.

The reason for copying firmware for CH is that it is not installed from package and there is no package available yet to install, so need to copy firmware as per instruction from CH wiki.

How is CH itself being installed?

https://github.com/cloud-hypervisor/cloud-hypervisor you can build from source or copy binary from release .

Why can't the firmware be copied during the same step that installs CH?

Idea was to let lisa copy all the required input files (base image file, firmware, etc) to remote host into the working dir (default /var/tmp). So, it would be consistent to let lisa do the copying.

The reason for copying firmware for CH is that it is not installed from package and there is no package available yet to install, so need to copy firmware as per instruction from CH wiki.

How is CH itself being installed?

https://github.com/cloud-hypervisor/cloud-hypervisor you can build from source or copy binary from release .

Why can't the firmware be copied during the same step that installs CH?

Idea was to let lisa copy all the required input files (base image file, firmware, etc) to remote host into the working dir (default /var/tmp). So, it would be consistent to let lisa do the copying.

Isn't the CH installation itself also a "required input file"?

The reason for copying firmware for CH is that it is not installed from package and there is no package available yet to install, so need to copy firmware as per instruction from CH wiki.

How is CH itself being installed?

https://github.com/cloud-hypervisor/cloud-hypervisor you can build from source or copy binary from release .

Why can't the firmware be copied during the same step that installs CH?

Idea was to let lisa copy all the required input files (base image file, firmware, etc) to remote host into the working dir (default /var/tmp). So, it would be consistent to let lisa do the copying.

Isn't the CH installation itself also a "required input file"?

CH installation is required dependencies just like qemu platform has qemu package installation. but base image file/fw files needs to be copied to remote host. Am i missing something here ?

The reason for copying firmware for CH is that it is not installed from package and there is no package available yet to install, so need to copy firmware as per instruction from CH wiki.

How is CH itself being installed?

https://github.com/cloud-hypervisor/cloud-hypervisor you can build from source or copy binary from release .

Why can't the firmware be copied during the same step that installs CH?

Idea was to let lisa copy all the required input files (base image file, firmware, etc) to remote host into the working dir (default /var/tmp). So, it would be consistent to let lisa do the copying.

Isn't the CH installation itself also a "required input file"?

CH installation is required dependencies just like qemu platform has qemu package installation. but base image file/fw files needs to be copied to remote host. Am i missing something here ?

In QEMU, the firmware files are also considered a dependency. Even if CH is being manually installed, why can't the firmware files be also manually installed before the test runs?

The reason for copying firmware for CH is that it is not installed from package and there is no package available yet to install, so need to copy firmware as per instruction from CH wiki.

How is CH itself being installed?

https://github.com/cloud-hypervisor/cloud-hypervisor you can build from source or copy binary from release .

Why can't the firmware be copied during the same step that installs CH?

Idea was to let lisa copy all the required input files (base image file, firmware, etc) to remote host into the working dir (default /var/tmp). So, it would be consistent to let lisa do the copying.

Isn't the CH installation itself also a "required input file"?

CH installation is required dependencies just like qemu platform has qemu package installation. but base image file/fw files needs to be copied to remote host. Am i missing something here ?

In QEMU, the firmware files are also considered a dependency. Even if CH is being manually installed, why can't the firmware files be also manually installed before the test runs?

The difference is that we don't need to specify QEMU firmware explicitly in the domain XML. Libvirt/Qemu is able to figure out the location of the firmware file and use it. But in case of CH, no such thing happens. The firmware path needs to be explicitly specified in the domain XML. And it should be configurable via runbook because there is no "standard" location for it.
While copying the file can be done outside lisa, I thought it would be a good idea to do it in lisa for consistency. All the other file paths specified in the runbook are local paths that need to be copied to the remote host node. It would be confusing to have just this one property take a path on the remote node.

@squirrelsc Is there any comment from your side to address ?

@squirrelsc Is there any comment from your side to address ?

No, please got Chris sign off first.


LidarElevationSlice isn't slicing

whitebox version: v0.13.0
Python version:

Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 03:02:14)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin

Operating System: MacOS Mojave 10.14.2

Description
Describe what you were trying to get done.
I have a small, 200 MB, colorized, indoor lidar point cloud of a conference room.  I'm trying to extract a slice of it.
The lidar_info output is the following:
File Signature: LASF
File Source ID: 0
Global Encoding:
GPS time=GpsWeekTime,
Waveform data internal=false,
Waveform data external=false,
Return data synthetic=false,
CRS method=WellKnownText
Project ID (GUID): {0-0-0-00-000000}
System ID: EXTRACTION
Generating Software: WhiteboxTools
Las Version: 1.3
File Creation Day/Year: 18/2019
Header Size: 235
Offset to Points: 440
Number of VLRs: 2
Point Format: 3
Point Record Length: 34
Num. of Points (32-bit): 5869712
Number of Points by Return: [11739424, 0, 0, 0, 0]
X Scale Factor: 0.0001
Y Scale Factor: 0.0001
Z Scale Factor: 0.0001
X Offset: -19.8205
Y Offset: -44.6813
Z Offset: 0.15910000000000002
Max X: 21.220100000000002
Min X: -19.8205
Max Y: 82.7065
Min Y: -44.6813
Max Z: 7.1942
Min Z: 0.15910000000000002
Waveform Data Start: 0
Min Intensity: 514
Max Intensity: 63737

Tell us what happened, what went wrong, and what you expected to happen.
When I try to use the lidar_elevation_slice command, it outputs a file the exact same size and no points have been removed as far as I can tell.
What I Did
Here is the command I'm running:
import whitebox
wbt = whitebox.WhiteboxTools()
wbt.set_working_dir(os.getcwd())
wbt.lidar_elevation_slice("test1.las", "test2.las", minz=3.0, maxz=5.0, cls=False)

The command-line output looks ok:
./whitebox_tools --run="LidarElevationSlice" --wd="<full path removed>/Data" --input='test1.las' --output='test2.las' --minz='3.0' --maxz='5.0' --inclassval=2 --outclassval=1 -v

***********************************
* Welcome to lidar_elevation_slice *
************************************
Reading input LAS file...
Performing analysis...

Complete!
0

But I get the entire file and not a slice.
What am I doing wrong?
Thanks in advance!

I believe this issue has been resolved in the latest version. Therefore, I am closing the issue. Please reopen the issue if you still encounter issues.


[msal-browser] Remove default scopes from silent flow

This PR removes the addition of openid and profile scopes when passing a requests to the SilentFlowClient in msal-common. This prevents cache misses when requesting from non-graph resources.

Coverage remained the same at 81.001% when pulling e6ce87f7be3947fa9186732cc4ae41399283d392 on fix-silent-default-scopes into 4569e412729a927f697a7b5f735a5cee2eac161f on dev.

Is this applicable to msal-node too?

Is this applicable to msal-node too?

Yes I think you do not need to add default scopes to acquireTokenByRefreshToken and acquireTokenSilent in ClientApplication.ts


add requests functionality for google keep notes

See if it is possible to utilize python's request library to pull the notes based on labels directly from google keep notes before altering images.
If can show that python can access google cloud from here, that would make the functionality of the script infinitely more important.

It does not look like this is possible currently. If research is found later that this is doable, this will be added again with reference material and discussions. Closing this.


Let users write reusable global functions in Lua

If there is a calculation for "something" write it once and reuse it everywhere you need. If it changes, then it changes for everyone.

Duplicate of #32