microsoft / live-share

Real-time collaborative development from the comfort of your favorite tools
http://aka.ms/vsls
Creative Commons Attribution 4.0 International
2.28k stars 253 forks source link

Text buffer synchronization was terrible #4601

Open AArnott opened 2 years ago

AArnott commented 2 years ago

Issue Type: Bug

I used VS Code for Windows to share a Live Share session with a guest who used VS Code in their browser. I created a calc.py file and the guest did most of the typing. It looked fine in their editor but looked quite corrupted in mine, even though I never typed anything after that. Two or three times my editor sync'd with theirs, but other than that, what they typed often went into the wrong places in my editor. I could see them typing steadily, so it wasn't a latency issue. Rather, whatever they typed tended to be inserted into the wrong location in my editor. See screenshot which compares my editor (right) with theirs (left). image

Extension version: 1.0.5330 VS Code version: Code 1.64.2 (f80445acd5a3dadef24aa209168452a3d97cc326, 2022-02-09T22:02:28.252Z) OS version: Windows_NT x64 10.0.22000 Restricted Mode: No

System Info |Item|Value| |---|---| |CPUs|AMD Ryzen 9 3950X 16-Core Processor (32 x 3493)| |GPU Status|2d_canvas: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
oop_rasterization: enabled
opengl: enabled_on
rasterization: enabled
skia_renderer: enabled_on
video_decode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled| |Load (avg)|undefined| |Memory (System)|63.93GB (32.74GB free)| |Process Argv|.. --crash-reporter-id 05d0e87e-c257-447b-9728-8a33aa35662d| |Screen Reader|no| |VM|0%|
A/B Experiments ``` vsliv368cf:30146710 vsreu685:30147344 python383:30185418 vspor879:30202332 vspor708:30202333 vspor363:30204092 vswsl492cf:30256860 pythonvspyl392cf:30425750 pythontb:30283811 pythonvspyt551:30345470 pythonptprofiler:30281270 vsdfh931:30280409 vshan820:30294714 vstes263:30335439 vscorecescf:30442554 pythondataviewer:30285071 vscod805cf:30301675 pythonvspyt200:30340761 binariesv615:30325510 bridge0708:30335490 bridge0723:30353136 vsaa593:30376534 vsc1dst:30438360 pythonvs932:30410667 wslgetstartedc:30433508 vsclayoutctrt:30437039 vsrem710cf:30416617 dsvsc008:30440022 pythonvspyt640:30442238 vsbas813:30436447 vscscmwlcmc:30438804 helix:30440343 ```
daytonellwanger commented 2 years ago

Thanks for the report. We're aware that these issues sometimes occur with the web client, but haven't ironed all of them out yet. If you ever bump into it again, following the troubleshooting steps in the desync issue template will provide us with more helpful info. Otherwise we'll try to reproduce on our end, though it's not always simple (though maybe in this case it is!).

Copying the relevant steps from the template: On both the host and the guest:

AArnott commented 2 years ago

Until I collect those steps, I'll just say I noticed any time the guest typed ( such that the language server would engage brace completion, or pressed enter and expected indentation, things would be thrown off.

daytonellwanger commented 2 years ago

Thanks! That's a helpful clue

AArnott commented 2 years ago

I can't repro it at the moment. But I happened across a new bug, so I filed it: #4615

github-actions[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed automatically in 2 days.

AArnott commented 2 years ago

This still repros. Just tried it. Please fix. I'd like to use this in hiring interviews but it's embarrassing when it's this bad!

kiber-io commented 1 year ago

Copying the relevant steps from the template:

good afternoon. it's just a terrible mistake. now I have vs code completely refuses to read the file correctly through liveshare

Document URI: vsls:/module/clients/ajax.php
Relative path: /module/clients/ajax.php
Has file client: true
Buffer contents match document contents: true
Buffer manager status: {
  "serverVersion": 55378,
  "unacknowledgedCount": 0,
  "waitingForRemoteEditsToBeApplied": false,
  "localChangesQueue": 0,
  "remoteMessagesQueue": 0
}