Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zlib error: invalid distance too far back #134429

Closed
kkat-zero opened this issue Oct 5, 2021 · 11 comments · Fixed by #137863
Closed

Zlib error: invalid distance too far back #134429

kkat-zero opened this issue Oct 5, 2021 · 11 comments · Fixed by #137863
Assignees
Labels
author-verification-requested Issues potentially verifiable by issue author bug Issue identified by VS Code Team member as probable bug freeze-slow-crash-leak VS Code crashing, performance, freeze and memory leak issues insiders-released Patch has been released in VS Code Insiders remote-connection Issues about the remote connection verified Verification succeeded
Milestone

Comments

@kkat-zero
Copy link

kkat-zero commented Oct 5, 2021

Does this issue occur when all extensions are disabled?: Yes

  • VS Code Version:1.60.2
  • OS Version:Windows_NT x64 10.0.19042

This is a problem that occurs when connecting the target OS to Linux from the Windows host OS using Remote Development.
If you check the logs, the extension host will start when you make a remote connection.
However, the extension host exits immediately.
"Extension Host Process exited with code: 1, signal: null." Is displayed on the log.

I guess the extended host function is timing out because the processing speed of the target OS is slow.
I set "Remote-SSH: Connect Timeout" to 500 seconds to solve this problem, but the problem still persists.

Are there any other measures?

[2021-10-05 17:57:11.242] [remoteagent] [info] Extension host agent started.
[2021-10-05 17:57:16.696] [remoteagent] [warning] No ptyHost heartbeat after 6 seconds
[2021-10-05 17:57:16.995] [remoteagent] [info] [<unknown>][fae5c6c7][ManagementConnection] New connection established.
[2021-10-05 17:57:17.184] [remoteagent] [info] [<unknown>][6346e60b][ExtensionHostConnection] New connection established.
[2021-10-05 17:57:17.364] [remoteagent] [info] [<unknown>][6346e60b][ExtensionHostConnection] <6182> Launched Extension Host Process.
[2021-10-05 17:57:22.028] [remoteagent] [error] No ptyHost heartbeat after 12 seconds
[2021-10-05 17:57:29.762] [remoteagent] [warning] No ptyHost heartbeat after 6 seconds
[2021-10-05 17:57:36.051] [remoteagent] [info] [<unknown>][6346e60b][ExtensionHostConnection] <6182> Extension Host Process exited with code: 1, signal: null.
[2021-10-05 17:57:36.072] [remoteagent] [info] Last EH closed, waiting before shutting down
[2021-10-05 17:57:36.686] [remoteagent] [error] [<unknown>][6346e60b][ExtensionHostConnection] Unknown reconnection token.
[2021-10-05 17:57:37.094] [remoteagent] [info] [<unknown>][fae5c6c7][ManagementConnection] The client has disconnected gracefully, so the connection will be disposed.
@alexdima
Copy link
Member

@kkat-zero In this case, it looks like the extension host process exited after 19seconds with exit code 1, which according to nodejs means "Uncaught Fatal Exception - There was an uncaught exception, and it was not handled by a domain or an uncaughtException event handler.". Unfortunately, that exit code is not very revealing towards what could be the problem.

In 1.61.0 we have improved logging on the server side to also include the stdout and stderr from the remote extension host. Could you please also try with 1.61.0 to see if the log contains more information regarding the crashing extension host? Also, could you please look for the remote extension host log (F1 > Developer: Show Logs > Remote Extension Host), the process appears to be running for 19s, so maybe there is something revealing in the remote extension host logs.

@alexdima alexdima added the info-needed Issue requires more information from poster label Oct 12, 2021
@kkat-zero
Copy link
Author

@alexdima Thank you for your reply.
After updating VS code to 1.61.0 as you suggested, I reproduced the same phenomenon.
then, I got the log, so I will post it.
One is the log on the Remote-server side.
The other is the log on the Remote extension Host side.

remoteagent.log
developer logs_remote_extension_Host.log

@alexdima
Copy link
Member

@kkat-zero Thank you for the extra information, the remoteagent.log does now point to the root cause:

[2021-10-13 08:50:56.961] [remoteagent] [error] [<unknown>][3e056802][ExtensionHostConnection] <1499> Error: invalid distance too far back
    at Zlib.zlibOnError [as onerror] (zlib.js:181:17)
[2021-10-13 08:50:57.114] [remoteagent] [info] [<unknown>][3e056802][ExtensionHostConnection] <1499><stderr> /home/foobar/.vscode-server/bin/ee8c7def80afc00dd6e593ef12f37756d8f504ea/out/vs/server/remoteExtensionHostProcess.js:3
 *--------------------------------------------------------*/(function(){var fe=["require","exports","vs/base/common/uri","vs/base/common/event","vs/platform/instantiation/common/instantiation","vs/workbench/api/common/extHost.protocol","vs/base/common/lifecycle","vs/workbench/api/common/extHostTypes","vs/base/common/path","vs/base/common/strings","vs/base/common/network","vs/base/common/platform","vs/base/common/types","vs/platform/log/common/log","vs/workbench/api/common/extHostRpcService","vs/workbench/api/common/extHostTypeConverters","vs/base/common/arrays","vs/base/common/async","vs/base/common/errors","vs/nls","vs/nls!vs/server/remoteExtensionHostProcess","vs/base/common/cancellation","vs/base/common/buffer","vs/base/common/resources","vs/base/common/map","vs/base/common/objects","vs/platform/extensions/common/extensions","vs/workbench/api/common/extHostInitDataService","vs/base/node/pfs","vs/base/common/extpath","vs/base/common/glob","vs/workbench/services/search/common/search","vs/base/common/uuid","vs/workbench/api/common/extHostTerminalService","vs/platform/registry/common/platform","vs/workbench/services/extensions/common/extensions","vs/workbench/api/common/extHostWorkspace","vs/workbench/api/common/extHostConfiguration","vs/base/common/process","child_process","vs/workbench/api/common/extHostCommands","vs/workbench/api/common/extHostExtensionService","vs/editor/common/core/range","vs/platform/files/common/files","vs/platform/workspace/common/workspace","vs/workbench/api/common/extHostDocumentsAndEditors","vs/base/common/stopwatch","vs/base/common/codicons","vs/base/common/hash","vs/base/common/severity","fs","vs/editor/common/core/position","vs/workbench/api/common/extHostFileSystemInfo","vs/workbench/api/common/extHostTunnelService","vs/workbench/services/extensions/common/proxyIdentifier","vs/workbench/api/common/extHostEditorTabs","vs/workbench/api/common/extHostDebugService","vs/base/common/assert","vs/base/common/collections","vs/base/common/decorators","vs/base/common/json","vs/base/common/marshalling","vs/base/common/errorMessage","vs/platform/contextkey/common/contextkey","vs/platform/theme/common/themeService","vs/workbench/api/common/extHostTestingPrivateApi","vs/workbench/api/common/extHostUriTransformerService","vs/workbench/api/common/extHostApiDeprecationService","vs/workbench/api/common/extHostOutput","vs/workbench/api/common/extHostStoragePaths","vs/workbench/api/common/extHostWebview","vs/workbench/services/search/common/searchExtTypes","vs/workbench/api/common/extHostTask","vs/base/common/performance","vs/workbench/api/common/extHostSearch","vs/base/common/functional","vs/base/common/idGenerator","vs/base/common/numbers","vs/base/common/normalization","vs/base/common/labels","os","vs/editor/common/modes/languageSelector","vs/platform/instantiation/common/extensions","vs/editor/common/modes","vs/platform/instantiation/common/serviceCollection","vs/platform/configuration/common/configurationRegistry","vs/platform/remote/common/remoteHosts","vs/workbench/api/common/cache","vs/workbench/api/common/shared/webview","vs/workbench/contrib/testing/common/testId","vs/workbench/api/common/exHostSecretState","vs/workbench/api/common/extHostFileSystemConsumer","vs/workbench/api/common/extHostStorage","vs/workbench/services/search/node/ripgrepSearchUtils","vs/base/common/iterator","vs/base/common/linkedList","vs/base/common/processes","vs/base/common/stream","vs/base/common/uint","vs/base/common/filters","vs/base/common/htmlContent","vs/base/common/comparers","vs/base/common/fuzzyScorer","vs/base/common/mime","vs/base/common/uriIpc","string_decoder","vs/base/node/extpath","vs/base/parts/ipc/common/ipc","vs/base/parts/ipc/common/ipc.net","vs/editor/common/core/characterClassifier","vs/editor/common/model","vs/editor/common/model/wordHelper","vs/editor/common/services/semanticTokensDto","vs/editor/common/viewModel/prefixSumComputer","vs/base/node/processes","vs/editor/common/config/editorOptions","vs/platform/instantiation/common/descriptors","vs/platform/log/node/spdlogLog","vs/platform/markers/common/markers","vs/platform/progress/common/progress","vs/platform/jsonschemas/common/jsonContributionRegistry","vs/platform/configuration/common/configuration","vs/platform/remote/common/remoteAuthorityResolver","vs/platform/remote/common/tunnel","vs/workbench/api/common/extHostTelemetry","vs/workbench/api/common/extHostDocumentData","vs/workbench/contrib/debug/common/abstractDebugAdapter","net","vs/workbench/contrib/notebook/common/notebookCommon","vs/workbench/contrib/testing/common/testCollection","vs/workbench/services/editor/common/editorGroupsService","vs/workbench/api/common/extHostNotebookEditor","vs/workbench/api/common/extHostTextEditor","vs/workbench/api/common/extHostDecorations","vs/workbench/api/common/extHostWindow","vs/workbench/services/search/common/textSearchManager","vs/workbench/services/search/node/textSearchManager","vs/workbench/services/search/node/ripgrepTextSearchEngine","vs/base/parts/ipc/node/ipc.net","vs/base/common/jsonFormatter","vs/base/common/jsonEdit","vs/base/common/lazy","vs/base/common/skipList","vs/base/common/iconLabels","vs/base/node/decoder","vs/editor/common/controller/wordCharacterClassifier","vs/editor/common/core/selection","vs/editor/common/model/textModelSearch","vs/editor/common/modes/languageConfiguration","vs/editor/common/modes/linkComputer","vs/editor/common/modes/tokenizationRegistry","vs/editor/common/model/mirrorTextModel","vs/nls!vs/base/common/date","vs/base/common/date","vs/nls!vs/base/common/errorMessage","vs/nls!vs/base/node/processes","vs/nls!vs/editor/common/config/editorOptions","vs/nls!vs/platform/configuration/common/configurationRegistry","vs/nls!vs/platform/extensionManagement/common/extensionManagement","vs/nls!vs/platform/extensions/common/extensionValidator","vs/nls!vs/platform/externalTerminal/node/externalTerminalService","vs/nls!vs/platform/files/common/files","vs/nls!vs/platform/markers/common/markers","vs/nls!vs/platform/theme/common/iconRegistry","vs/nls!vs/platform/workspaces/common/workspaces","vs/nls!vs/workbench/api/common/extHostDiagnostics","vs/nls!vs/workbench/api/common/extHostExtensionService","vs/nls!vs/workbench/api/common/extHostProgress","vs/nls!vs/workbench/api/common/extHostStatusBar","vs/nls!vs/workbench/api/common/extHostTerminalService","vs/nls!vs/workbench/api/common/extHostTreeViews","vs/nls!vs/workbench/api/common/extHostWorkspace","vs/nls!vs/workbench/api/node/extHostDebugService","vs/nls!vs/workbench/api/node/extHostTunnelService","vs/nls!vs/workbench/common/editor","vs/nls!vs/workbench/common/views","vs/nls!vs/workbench/contrib/debug/common/abstractDebugAdapter","vs/nls!vs/workbench/contrib/debug/node/debugAdapter","vs/nls!vs/workbench/contrib/search/common/queryBuilder","vs/nls!vs/workbench/contrib/tasks/common/taskService","vs/nls!vs/workbench/services/configurationResolver/common/variableResolver","vs/platform/editor/common/editor","vs/platform/extensions/common/extensionValidator","vs/platform/instantiation/common/graph","vs/editor/common/services/modelService","vs/editor/common/modes/languageFeatureRegistry","vs/platform/environment/common/environment","vs/platform/extensionManagement/common/extensionManagement","vs/platform/extensionManagement/common/extensionManagementUtil","vs/platform/externalTerminal/common/externalTerminal","vs/platform/externalTerminal/node/externalTerminalService","vs/platform/instantiation/common/instantiationService","vs/platform/notification/common/notification","vs/platform/opener/common/opener","vs/platform/product/common/product","vs/platform/configuration/common/configurationModels","vs/platform/sign/node/signService","vs/platform/terminal/common/terminalDataBuffering","vs/platform/theme/common/theme","vs/platform/theme/common/iconRegistry","vs/platform/workspaces/common/workspaces","vs/workbench/api/common/extHostMemento","vs/workbench/api/common/extHostNotebookDocuments","vs/workbench/api/common/extHostSecrets","vs/workbench/api/common/extHostNotebookConcatDocument","vs/workbench/api/common/extHostTheming","vs/workbench/api/common/extHostWebviewMessaging","vs/workbench/api/common/shared/treeDataTransfer","vs/workbench/api/common/extHostCodeInsets","vs/workbench/common/editor","vs/workbench/common/views","vs/workbench/contrib/debug/common/debugUtils","vs/workbench/contrib/debug/node/debugAdapter","vs/workbench/contrib/debug/node/terminals","vs/workbench/contrib/notebook/common/notebookExecutionService","vs/workbench/contrib/tasks/common/taskService","vs/workbench/contrib/terminal/common/environmentVariableShared","vs/workbench/services/configurationResolver/common/variableResolver","vs/workbench/services/editor/common/editorService","vs/workbench/api/common/extHostDocumentSaveParticipant","vs/workbench/api/common/extHostFileSystemEventService","vs/workbench/api/common/extHostNotebookDocument","vs/workbench/api/common/extHostProgress","vs/workbench/api/common/extHostTreeViews","vs/workbench/contrib/testing/common/ownedTestCollection","vs/workbench/services/environment/common/environmentService","vs/workbench/services/extensions/common/extensionDescriptionRegistry","vs/workbench/services/extensions/common/extensionHostProtocol","vs/workbench/api/common/extHostExtensionActivator","vs/workbench/api/node/extHostLogService","vs/workbench/services/extensions/common/lazyPromise","vs/workbench/api/common/extHostAuthentication","vs/workbench/api/common/extHostBulkEdits","vs/workbench/api/common/extHostClipboard","vs/workbench/api/common/extHostApiCommands","vs/workbench/api/common/extHostComments","vs/workbench/api/common/extHostDiagnostics","vs/workbench/api/common/extHostDialogs","vs/workbench/api/common/extHostDocumentContentProviders","vs/workbench/api/common/extHostDocuments","vs/workbench/api/common/extHostFileSystem","vs/workbench/api/common/extHostInteractive","vs/workbench/api/common/extHostLabelService","vs/workbench/api/common/extHostLanguageFeatures","vs/workbench/api/common/extHostLanguages","vs/workbench/api/common/extHostMessageService","vs/workbench/api/common/extHostNotebook","vs/workbench/api/common/extHostNotebookEditors","vs/workbench/api/common/extHostNotebookKernels","vs/workbench/api/common/extHostNotebookRenderers","vs/workbench/api/common/extHostQuickOpen","vs/workbench/api/common/extHostSCM","vs/workbench/api/common/extHostStatusBar","vs/workbench/api/common/extHostTesting","vs/workbench/api/common/extHostTextEditors","vs/workbench/api/common/extHostTimeline","vs/workbench/api/common/extHostUriOpener","vs/workbench/api/common/extHostUrls","vs/workbench/api/common/extHostCustomEditors","vs/workbench/api/common/extHostWebviewPanels","vs/workbench/api/common/extHostWebviewView","vs/workbench/api/node/extHostDownloadService","vs/workbench/api/node/extHostOutputService","vs/workbench/api/node/extHostStoragePaths","vs/workbench/api/node/extHostTerminalService","vs/workbench/api/node/extHostTunnelService","vs/workbench/services/extensions/common/rpcProtocol","vs/workbench/services/remote/common/remoteAgentService","vs/workbench/services/path/common/pathService","vs/workbench/contrib/search/common/queryBuilder","vs/workbench/api/common/shared/workspaceContains","vs/workbench/api/common/extHostRequireInterceptor","vs/workbench/api/node/extHostDebugService","vs/workbench/api/node/extHostTask","vs/workbench/services/extensions/common/extensionHostMain","vs/workbench/services/search/common/fileSearchManager","vs/workbench/api/common/extHost.api.impl","vs/workbench/api/common/extHost.common.services","vs/workbench/services/textfile/common/encoding","vs/workbench/services/extensions/node/proxyResolver","http","vs/workbench/services/search/node/ripgrepFileSearch","vscode-ripgrep","vs/workbench/services/search/node/fileSearch","vs/workbench/services/search/node/ripgrepSearchProvider","vs/workbench/services/search/node/textSearchAdapter","vs/workbench/services/search/node/rawSearchService","vs/workbench/api/node/extHostSearch","vs/workbench/api/node/extHostCLIServer","vs/workbench/api/node/extHostExtensionService","vs/workbench/api/node/extHost.node.services","vs/workbench/services/extensions/node/extensionHostProcessSetup","util","vs/base/common/marked/marked","path","https","tls","vscode-proxy-agent","events","vscode-regexpp","graceful-fs","crypto","zlib","minimist","vs/server/remoteExtensionHostProcess"],me=function(X){for(var e=[],f=0,F=X.length;f<F;f++)e[f]=fe[X[f]];return e};define(fe[57],me([0,1]),function(X,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ok=void 0;function f(F,C){if(!F)throw new Error(C?`Assertion failed (${C})`:"Assertion Failed")}e.ok=f}),define(fe[58],me([0,1]),function(X,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SetMap=e.diffMaps=e.diffSets=e.fromMap=e.groupBy=e.forEach=e.values=void 0;const f=Object.prototype.hasOwnProperty;function F(n){const k=[];for(let a in n)f.call(n,a)&&k.push(n[a]);return k}e.values=F;function C(n,k){for(let a in n)if(f.call(n,a)&&k({key:a,value:n[a]},function(){delete n[a]})===!1)return}e.forEach=C;function y(n,k){const a=Object.create(null);for(const m of n){const d=k(m);let v=a[d];v||(v=a[d]=[]),v.push(m)}return a}e.groupBy=y;function T(n){const k=Object.create(null);return n&&n.forEach((a,m)=>{k[m]=a}),k}e.fromMap=T;function _(n,k){const a=[],m=[];for(let d of n)k.has(d)||a.push(d);for(let d of k)n.has(d)||m.push(d);return{removed:a,added:m}}e.diffSets=_;function S(n,k){const a=[],m=[];for(let[d,v]of n)k.has(d)||a.push(v);for(let[d,v]of k)n.has(d)||m.push(v);return{removed:a,added:m}}e.diffMaps=S;class P{constructor(){this.map=new Map}add(k,a){let m=this.map.get(k);m||(m=new Set,this.map.set(k,m)),m.add(a)}delete(k,a){const m=this.map.get(k);!m||(m.delete(a),m.size===0&&this.map.delete(k))}forEach(k,a){const m=this.map.get(k);!m||m.forEach(a)}}e.SetMap=P}),define(fe[59],me([0,1]),function(X,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.throttle=e.debounce=e.memoize=e.createDecorator=void 0;function f(T){return(_,S,P)=>{let n=null,k=null;if(typeof P.value=="function"?(n="value",k=P.value):typeof P.get=="function"&&(n="get",k=P.get),!k)throw new Error("not supported");P[n]=T(k,S)}}e.createDecorator=f;function F(T,_,S){let P=null,n=null;if(typeof S.value=="function"?(P="value",n=S.value,n.length!==0&&console.warn("Memoize should only be used in functions with zero parameters")):typeof S.get=="function"&&(P="get",n=S.get),!n)throw new Error("not supported");const k=`$memoize$${_}`;S[P]=function(...a){return this.hasOwnProperty(k)||Object.defineProperty(this,k,{configurable:!1,enumerable:!1,writable:!1,value:n.apply(this,a)}),this[k]}}e.memoize=F;function C(T,_,S){return f((P,n)=>{const k=`$debounce$${n}`,a=`$debounce$result$${n}`;return function(...m){this[a]||(this[a]=S?S():void 0),clearTimeout(this[k]),_&&(this[a]=_(this[a],...m),m=[this[a]]),this[k]=setTimeout(()=>{P.apply(this,m),this[a]=S?S():void 0},T)}})}e.debounce=C;function y(T,_,S){return f((P,n)=>{const k=`$throttle$timer$${n}`,a=`$throttle$result$${n}`,m=`$throttle$lastRun$${n}`,d=`$throttle$pending$${n}`;return function(...v){if(this[a]||(this[a]=S?S():void 0),(this[m]===null||this[m]===void 0)&&(this[m]=-Number.MAX_VALUE),_&&(this[a]=_(this[a],...v)),this[d])return;const D=this[m]+T;D<=Date.now()?(this[m]=Date.now(),P.apply(this,[this[a]]),this[a]=S?S():void 0):(this[d]=!0,this[k]=setTimeout(()=>{this[d]=!1,this[m]=Date.now(),P.apply(this,[this[a]]),this[a]=S?S():void 0},D-Date.now()))}})}e.throttle=y}),define(fe[18],me([0,1]),function(X,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createErrorWithActions=e.isErrorWithActions=e.ExpectedError=e.NotSupportedError=e.NotImplementedError=e.getErrorMessage=e.disposed=e.readonly=e.illegalState=e.illegalArgument=e.canceled=e.CancellationError=e.isPromiseCanceledError=e.transformErrorForSerialization=e.onUnexpectedExternalError=e.onUnexpectedError=e.setUnexpectedErrorHandler=e.errorHandler=e.ErrorHandler=void 0;class f{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?new Error(t.message+`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

Error: invalid distance too far back

Error: invalid distance too far back
    at Zlib.zlibOnError [as onerror] (zlib.js:181:17)
    at Timeout._onTimeout (/home/foobar/.vscode-server/bin/ee8c7def80afc00dd6e593ef12f37756d8f504ea/out/vs/server/remoteExtensionHostProcess.js:3:16117)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)

[2021-10-13 08:50:57.139] [remoteagent] [info] [<unknown>][3e056802][ExtensionHostConnection] <1499> Extension Host Process exited with code: 1, signal: null. 

It looks like there is a zlib stream decoding error in the extension host.

@kkat-zero I am very interested to manage to reproduce this. In the remote machine, we pass over sockets from one process to another, and I think that something might be misbehaving in this area. What is the remote Linux distribution/version that you are connecting to? Does this reproduce when connecting to any linux machine via SSH?

@alexdima alexdima added freeze-slow-crash-leak VS Code crashing, performance, freeze and memory leak issues remote Remote system operations issues labels Oct 13, 2021
@alexdima alexdima added this to the October 2021 milestone Oct 13, 2021
@kkat-zero
Copy link
Author

@alexdima Thank you for the quick response.
Describes the Linux distribution and kernel version.

-Debian (version 9.13)
-Linux Kernel (Linux version 4.4.0-cip-rt-am335x (root @ runner--WzatKxx-project-21419463-concurrent-0) (gcc version 6.3.0 20170516 (Debian 6.3.0-18)) # 1 Thu Oct 22 03:36:11 UTC 2020)

This target Linux machine is an embedded Linux device. (MOXA-UC2100)

When connecting directly with OpenSSH, this phenomenon does not occur.

@kkat-zero
Copy link
Author

@alexdima We will inform you of additional information.

A) In rare cases, this phenomenon can be connected without error. (When retrying many times)
However, even after the connection is established, the remote connection is often disconnected on the way.

B) This embedded device has a very small internal RAM of 256MB.
Therefore, the memory capacity is increased by setting the virtual memory.
The additional RAM capacity setting is 512MB.
The additional memory is set to the built-in flash ROM (eMMC).
Therefore, the total RAM of the system is 768MB.

When VS Code makes a remote connection, I'm checking that a memory swap is occurring because the internal RAM alone isn't enough.

When I checked the memory used when the startup was successful, it was confirmed that a total of about 300MB of RAM was used.

@alexdima
Copy link
Member

alexdima commented Oct 13, 2021

@kkat-zero Thank you for the extra information. Indeed, it might be a bug caused by timing that reproduces on memory limited machines that need to do swapping. Is there a way for me to try this debian distro in a VM? Could you please point me to an article or some steps to simulate this environment?

@kkat-zero
Copy link
Author

@alexdima Thank you for the quick response.
It is very difficult to build the same environment.
This is because there is generally no embedded linux VM environment.
(Usually, the test is performed on the actual machine)

However, I think it is possible to create an environment that combines only the limited memory environment with a VM.

First, build a virtual environment to install Debian OS on VMWare.
At this time, set the internal RAM memory to be mounted as small as 256MB. (Set an appropriate size for the built-in ROM, about 8 to 16GB)

Once the virtual environment can be built, set the virtual memory under that environment.
In our environment, 512MB is set as virtual memory.

There are two points of concern.

One thing to worry about is whether it is possible to install a general Debian OS on a PC with limited RAM.
If you cannot install it, you need to adjust the RAM size to an appropriate size as much as possible.
(It is necessary to build a state in which the internal RAM usage after OS installation is moderately overused.)

Second, when using a VM environment, there is a high possibility that the CPU processing speed and memory access speed will be faster than the actual machine.
Even if you set the virtual memory in the VM environment, the same problem may not occur if the problem is caused by the processing speed.
(If the problem depends on the virtual memory mechanism, it may be reproduced.)

For reference, the following sites are shown.

[How to build VMware]
https://kb.vmware.com/s/article/1018415

[Virtual memory setting method]
https://www.techwalla.com/articles/how-to-increase-virtual-memory-in-linux

@alexdima alexdima added bug Issue identified by VS Code Team member as probable bug remote-connection Issues about the remote connection and removed info-needed Issue requires more information from poster remote Remote system operations issues labels Oct 14, 2021
@alexdima alexdima modified the milestones: October 2021, November 2021 Oct 28, 2021
@alexdima alexdima changed the title "Extension Host Process exited with code: 1, signal: null." Occurrence problem in Remote-SSH connection Zlib error: invalid distance too far back Nov 25, 2021
alexdima added a commit that referenced this issue Nov 25, 2021
…e extension host process, which then asks the client to resume (#134429)
guibber pushed a commit to guibber/vscode that referenced this issue Nov 30, 2021
…e extension host process, which then asks the client to resume (microsoft#134429)
@aeschli
Copy link
Contributor

aeschli commented Dec 2, 2021

@alexdima Is this something we can verify? Do you have a simple setup with steps?

@aeschli aeschli added the verification-steps-needed Steps to verify are needed for verification label Dec 2, 2021
@alexdima
Copy link
Member

alexdima commented Dec 2, 2021

Unfortunately I was only able to reproduce by making changes to the source code (e.g. to add artificial delays to the extension host startup path).

@alexdima alexdima added author-verification-requested Issues potentially verifiable by issue author and removed verification-steps-needed Steps to verify are needed for verification labels Dec 2, 2021
@kkat-zero
Copy link
Author

@alexdima Thank you for corresponding to solve this issue.
I did the same test with Ver1.63.0-insider.
As a result, it was confirmed that it operates stably.
This issue can be closed.

Thank you.

@rzhao271 rzhao271 added the verified Verification succeeded label Dec 6, 2021
@github-actions github-actions bot locked and limited conversation to collaborators Jan 10, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
author-verification-requested Issues potentially verifiable by issue author bug Issue identified by VS Code Team member as probable bug freeze-slow-crash-leak VS Code crashing, performance, freeze and memory leak issues insiders-released Patch has been released in VS Code Insiders remote-connection Issues about the remote connection verified Verification succeeded
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants
@roblourens @alexdima @aeschli @rzhao271 @kkat-zero and others