overte icon indicating copy to clipboard operation
overte copied to clipboard

Update to libnode 22 LTS.

Open JulianGro opened this issue 5 months ago • 18 comments

Bumps zlib as well, since libnode depends on a newer version.

Took me the entire day, but here we go. This is the packaging side of updating libnode 18 to libnode 22. I don't think there are any other build system or packaging changes to do; Everything should just work™ there.

To build, don't forget to bump the cppstd to 20:

conan install . -s build_type=Release -b missing -pr:b=default -of build -s compiler.cppstd=20

The first build error is:

/home/juliangro/git/overte/libraries/script-engine/src/v8/ScriptContextV8Wrapper.cpp: In member function ‘virtual ScriptValue ScriptContextV8Wrapper::argument(int) const’:
/home/juliangro/git/overte/libraries/script-engine/src/v8/ScriptContextV8Wrapper.cpp:82:44: error: ‘constexpr const int v8::FunctionCallbackInfo<v8::Value>::kArgsLength’ is private within this context
   82 |         if (index < _functionCallbackInfo->kArgsLength) {
      |                                            ^~~~~~~~~~~
In file included from /home/juliangro/.conan2/p/b/libnob68241202d42b/p/include/node/v8-isolate.h:21,
                 from /home/juliangro/.conan2/p/b/libnob68241202d42b/p/include/node/v8-snapshot.h:9,
                 from /home/juliangro/.conan2/p/b/libnob68241202d42b/p/include/node/v8-context.h:15,
                 from /home/juliangro/.conan2/p/b/libnob68241202d42b/p/include/node/v8.h:26,
                 from /home/juliangro/git/overte/libraries/script-engine/src/v8/ScriptContextV8Wrapper.h:27,
                 from /home/juliangro/git/overte/libraries/script-engine/src/v8/ScriptContextV8Wrapper.cpp:15:
/home/juliangro/.conan2/p/b/libnob68241202d42b/p/include/node/v8-function-callback.h:153:24: note: declared private here
  153 |   static constexpr int kArgsLength = 6;
      |                        ^~~~~~~~~~~
gmake[2]: *** [libraries/script-engine/CMakeFiles/script-engine.dir/build.make:765: libraries/script-engine/CMakeFiles/script-engine.dir/src/v8/ScriptContextV8Wrapper.cpp.o] Fehler 1
gmake[2]: *** Es wird auf noch nicht beendete Prozesse gewartet …
/home/juliangro/git/overte/libraries/script-engine/src/v8/ScriptEngineV8.cpp: In member function ‘virtual ScriptValue ScriptEngineV8::evaluateInClosure(const ScriptValue&, const ScriptProgramPointer&)’:
/home/juliangro/git/overte/libraries/script-engine/src/v8/ScriptEngineV8.cpp:654:99: error: ‘class v8::Object’ has no member named ‘CreationContext’; did you mean ‘GetCreationContext’?
  654 |             auto globalMemberNames = globalObjectContents->GetPropertyNames(globalObjectContents->CreationContext()).ToLocalChecked();
      |                                                                                                   ^~~~~~~~~~~~~~~
      |                                                                                                   GetCreationContext
/home/juliangro/git/overte/libraries/script-engine/src/v8/ScriptEngineV8.cpp:657:121: error: ‘class v8::Object’ has no member named ‘CreationContext’; did you mean ‘GetCreationContext’?
  657 |                 if(!closureContext->Global()->Set(closureContext, name, globalObjectContents->Get(globalObjectContents->CreationContext(), name).ToLocalChecked()).FromMaybe(false)) {
      |                                                                                                                         ^~~~~~~~~~~~~~~
      |                                                                                                                         GetCreationContext
/home/juliangro/git/overte/libraries/script-engine/src/v8/ScriptEngineV8.cpp:726:74: error: ‘class v8::Object’ has no member named ‘CreationContext’; did you mean ‘GetCreationContext’?
  726 |                     oldRequireObject->GetPropertyNames(oldRequireObject->CreationContext()).ToLocalChecked();
      |                                                                          ^~~~~~~~~~~~~~~
      |                                                                          GetCreationContext
/home/juliangro/git/overte/libraries/script-engine/src/v8/ScriptEngineV8.cpp:730:66: error: ‘class v8::Object’ has no member named ‘CreationContext’; did you mean ‘GetCreationContext’?
  730 |                     if (!oldRequireObject->Get(oldRequireObject->CreationContext(), name).ToLocal(&oldObject)) {
      |                                                                  ^~~~~~~~~~~~~~~
      |                                                                  GetCreationContext
gmake[2]: *** [libraries/script-engine/CMakeFiles/script-engine.dir/build.make:793: libraries/script-engine/CMakeFiles/script-engine.dir/src/v8/ScriptEngineV8.cpp.o] Fehler 1

JulianGro avatar Jul 21 '25 18:07 JulianGro

libnode22 also builds on macOS, which version 18 doesn't without patches due to it looking for the wrong Python executable.

JulianGro avatar Aug 12 '25 17:08 JulianGro

I think the change to node22 was rebased out of conan, for some reason?

RTUnreal avatar Sep 02 '25 15:09 RTUnreal

Ah, thanks for catching that.

JulianGro avatar Sep 02 '25 17:09 JulianGro

Ah, thanks for catching that.

Also, the update to zlib as well 1

RTUnreal avatar Sep 02 '25 17:09 RTUnreal

That one should be fine, since we bumped zlib in master already.

JulianGro avatar Sep 02 '25 17:09 JulianGro

it seems that abseil is causing issues? It is a dependency of webrtc-ap-2. Do we need to update it as well?

RTUnreal avatar Sep 02 '25 19:09 RTUnreal

I figured it out, the CXX_STANDARD was reset to c++17, so std::partial_ordering was not available anymore for abseil -> webrtc-audio-processing -> overte

RTUnreal avatar Sep 03 '25 12:09 RTUnreal

ERROR: There are invalid packages:
libnode/22.17.1@overte/experimental: Invalid: Current cppstd (gnu17) is lower than the required C++ standard (20).
ksuprynowicz@ksudb:~/overte/overte_master/overte$ 

ksuprynowicz avatar Nov 15 '25 17:11 ksuprynowicz

Interface fails with:

/home/ksuprynowicz/overte/overte_master/overte/build/interface/interface --allowMultipleInstances --useExperimentalXR
ERROR: Something is wrong with flag 'flagfile' in file 'home/ksuprynowicz/.conan2/p/b/absei13867ac2eaaa6/b/src/absl/flags/parse.cc'. One possibility: file 'home/ksuprynowicz/.conan2/p/b/absei13867ac2eaaa6/b/src/absl/flags/parse.cc' is being linked both statically and dynamically into this executable. e.g. some files listed as srcs to a test and also listed as srcs of some shared lib deps of the same test.

ksuprynowicz avatar Nov 15 '25 17:11 ksuprynowicz

After deleting ~/.conan2 and setting up everything from scratch, it fails with:

opengl/system: System requirements:  already installed
openssl/system@anotherfoxguy/stable: System requirements:  already installed
dpkg-query: no packages found matching fcitx5-frontend-qt5
ERROR: qt/5.15.2@overte/system: Error in system_requirements() method, line 29
        apt.install(
        ConanException: System requirements: 'fcitx5-frontend-qt5' are missing but can't install because tools.system.package_manager:mode is 'check'.Please update packages manually or set 'tools.system.package_manager:mode' to 'install' in the [conf] section of the profile, or in the command line using '-c tools.system.package_manager:mode=install'

ksuprynowicz avatar Nov 15 '25 17:11 ksuprynowicz

I finally built it, but after starting it kinda just freezes and menu on the top of the window doesn't work at all.

ksuprynowicz avatar Nov 15 '25 19:11 ksuprynowicz

The text that keeps repeating in the logs:

[11/15 20:13:07] [DEBUG] [hifi.networking] Possible domain change required to serverless domain:  "file:///~/serverless/tutorial.json"
[11/15 20:13:07] [DEBUG] [hifi.networking] Resetting current domain connection information.
[11/15 20:13:07] [DEBUG] [hifi.networking] Soft reset 
[11/15 20:13:07] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[11/15 20:13:07] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[11/15 20:13:07] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[11/15 20:13:07] [DEBUG] [hifi.networking] Updated domain port to 40102
[11/15 20:13:07] [DEBUG] [hifi.networking] User entered path could not be handled as a viewpoint -  "/" - will attempt to ask domain-server to resolve.
[11/15 20:13:07] [CRITICAL] [overte.scriptengine.v8] Method  task::JobConfig :: "getSubConfigs"  has QMetaType::UnknownType return value
[11/15 20:13:08] [DEBUG] [hifi.interface.deadlock] DEADLOCK WATCHDOG WARNING: lastHeartbeatAge: 281632126 elapsedMovingAverage: 126931 PREVIOUS maxElapsed: 280632006 NEW maxElapsed: 281632126 ** NEW MAX ELAPSED ** maxElapsedAverage: 126320 samples: 26
[11/15 20:13:08] [DEBUG] [hifi.interface.deadlock] DEADLOCK DETECTED --  lastHeartbeatAge: 281632126 [ lastHeartbeat : 1763233706997120 now: 1763233988629246  ] elapsedMovingAverage: 126931 maxElapsed: 281632126 maxElapsedAverage: 126320 samples: 26
[11/15 20:13:09] [DEBUG] [hifi.interface.deadlock] DEADLOCK WATCHDOG WARNING: lastHeartbeatAge: 282632252 elapsedMovingAverage: 126931 PREVIOUS maxElapsed: 281632126 NEW maxElapsed: 282632252 ** NEW MAX ELAPSED ** maxElapsedAverage: 126320 samples: 26
[11/15 20:13:09] [DEBUG] [hifi.interface.deadlock] DEADLOCK DETECTED --  lastHeartbeatAge: 282632252 [ lastHeartbeat : 1763233706997120 now: 1763233989629372  ] elapsedMovingAverage: 126931 maxElapsed: 282632252 maxElapsedAverage: 126320 samples: 26
[11/15 20:13:10] [DEBUG] [hifi.networking] Possible domain change required to serverless domain:  "file:///~/serverless/tutorial.json"
[11/15 20:13:10] [DEBUG] [hifi.networking] Resetting current domain connection information.
[11/15 20:13:10] [DEBUG] [hifi.networking] Soft reset 
[11/15 20:13:10] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[11/15 20:13:10] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[11/15 20:13:10] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[11/15 20:13:10] [DEBUG] [hifi.networking] Updated domain port to 40102
[11/15 20:13:10] [DEBUG] [hifi.networking] User entered path could not be handled as a viewpoint -  "/" - will attempt to ask domain-server to resolve.

ksuprynowicz avatar Nov 15 '25 19:11 ksuprynowicz

Stack trace:

__GI___read_nocancel 0x00007fffee50eca4
ScriptMethodV8Proxy::ScriptMethodV8Proxy ScriptObjectV8Proxy.cpp:928
ScriptMethodV8Proxy::newMethod ScriptObjectV8Proxy.cpp:960
ScriptObjectV8Proxy::investigate ScriptObjectV8Proxy.cpp:405
ScriptObjectV8Proxy::ScriptObjectV8Proxy ScriptObjectV8Proxy.cpp:82
ScriptObjectV8Proxy::newQObject ScriptObjectV8Proxy.cpp:118
ScriptEngineV8::registerGlobalObject ScriptEngineV8.cpp:396
Application::registerScriptEngineWithApplicationServices Application.cpp:549
operator() Application_Setup.cpp:1463
ScriptInitializerMixin<std::shared_ptr<ScriptManager> >::runScriptInitializers(std::shared_ptr<ScriptManager>)::{lambda(auto:1)#1}::operator()<std::function<void (std::shared_ptr<ScriptManager>)> >(std::function<void (std::shared_ptr<ScriptManager>)>) const ScriptInitializerMixin.h:30
ScriptEngines::runScriptInitializers ScriptEngines.cpp:651
EntityTreeRenderer::resetNonPersistentEntitiesScriptEngine EntityTreeRenderer.cpp:275
EntityTreeRenderer::clearDomainAndNonOwnedEntities EntityTreeRenderer.cpp:315
Application::clearDomainOctreeDetails Application_Entities.cpp:237
Application::resettingDomain Application_Entities.cpp:251
Application::event Application_Events.cpp:178
Application::notify Application_Events.cpp:61
ScriptEngineV8::~ScriptEngineV8 ScriptEngineV8.cpp:264
HelperScriptEngine::~HelperScriptEngine HelperScriptEngine.cpp:29
EntityTree::~EntityTree EntityTree.cpp:66
Application::prepareServerlessDomainContents Application.cpp:990
operator() Application.cpp:1014
Application::event Application_Events.cpp:178
Application::notify Application_Events.cpp:61
ScriptEngineV8::~ScriptEngineV8 ScriptEngineV8.cpp:264
HelperScriptEngine::~HelperScriptEngine HelperScriptEngine.cpp:29
EntityTree::~EntityTree EntityTree.cpp:66
Application::prepareServerlessDomainContents Application.cpp:990
operator() Application.cpp:1014
Application::event Application_Events.cpp:178
Application::notify Application_Events.cpp:61
ScriptEngineV8::~ScriptEngineV8 ScriptEngineV8.cpp:264
HelperScriptEngine::~HelperScriptEngine HelperScriptEngine.cpp:29
EntityTree::~EntityTree EntityTree.cpp:66
Application::prepareServerlessDomainContents Application.cpp:990
operator() Application.cpp:1014
Application::event Application_Events.cpp:178
Application::notify Application_Events.cpp:61
main main.cpp:850

ksuprynowicz avatar Nov 15 '25 19:11 ksuprynowicz

It kinda looks like it gets stuck in a very slow infinite recursion?

__GI___read_nocancel 0x00007fffee50eca4
V8ScriptValueTemplate::~V8ScriptValueTemplate V8Types.h:106
V8ScriptString::~V8ScriptString V8Types.h:120
ScriptObjectV8Proxy::investigate ScriptObjectV8Proxy.cpp:341
ScriptObjectV8Proxy::ScriptObjectV8Proxy ScriptObjectV8Proxy.cpp:82
ScriptObjectV8Proxy::newQObject ScriptObjectV8Proxy.cpp:118
ScriptEngineV8::registerGlobalObject ScriptEngineV8.cpp:396
Application::registerScriptEngineWithApplicationServices Application.cpp:631
operator() Application_Setup.cpp:1463
ScriptInitializerMixin<std::shared_ptr<ScriptManager> >::runScriptInitializers(std::shared_ptr<ScriptManager>)::{lambda(auto:1)#1}::operator()<std::function<void (std::shared_ptr<ScriptManager>)> >(std::function<void (std::shared_ptr<ScriptManager>)>) const ScriptInitializerMixin.h:30
ScriptEngines::runScriptInitializers ScriptEngines.cpp:651
EntityTreeRenderer::resetNonPersistentEntitiesScriptEngine EntityTreeRenderer.cpp:275
EntityTreeRenderer::clearDomainAndNonOwnedEntities EntityTreeRenderer.cpp:315
Application::clearDomainOctreeDetails Application_Entities.cpp:237
Application::resettingDomain Application_Entities.cpp:251
Application::event Application_Events.cpp:178
Application::notify Application_Events.cpp:61
ScriptEngineV8::~ScriptEngineV8 ScriptEngineV8.cpp:264
HelperScriptEngine::~HelperScriptEngine HelperScriptEngine.cpp:29
EntityTree::~EntityTree EntityTree.cpp:66
Application::prepareServerlessDomainContents Application.cpp:990
operator() Application.cpp:1014
Application::event Application_Events.cpp:178
Application::notify Application_Events.cpp:61
ScriptEngineV8::~ScriptEngineV8 ScriptEngineV8.cpp:264
HelperScriptEngine::~HelperScriptEngine HelperScriptEngine.cpp:29
EntityTree::~EntityTree EntityTree.cpp:66
Application::prepareServerlessDomainContents Application.cpp:990
operator() Application.cpp:1014
Application::event Application_Events.cpp:178
Application::notify Application_Events.cpp:61
ScriptEngineV8::~ScriptEngineV8 ScriptEngineV8.cpp:264
HelperScriptEngine::~HelperScriptEngine HelperScriptEngine.cpp:29
EntityTree::~EntityTree EntityTree.cpp:66
Application::prepareServerlessDomainContents Application.cpp:990
operator() Application.cpp:1014
Application::event Application_Events.cpp:178
Application::notify Application_Events.cpp:61
ScriptEngineV8::~ScriptEngineV8 ScriptEngineV8.cpp:264
HelperScriptEngine::~HelperScriptEngine HelperScriptEngine.cpp:29
EntityTree::~EntityTree EntityTree.cpp:66
Application::prepareServerlessDomainContents Application.cpp:990
operator() Application.cpp:1014
Application::event Application_Events.cpp:178
Application::notify Application_Events.cpp:61
ScriptEngineV8::~ScriptEngineV8 ScriptEngineV8.cpp:264
HelperScriptEngine::~HelperScriptEngine HelperScriptEngine.cpp:29
EntityTree::~EntityTree EntityTree.cpp:66
Application::prepareServerlessDomainContents Application.cpp:990
operator() Application.cpp:1014
Application::event Application_Events.cpp:178
Application::notify Application_Events.cpp:61
main main.cpp:850

ksuprynowicz avatar Nov 15 '25 19:11 ksuprynowicz

When I set world URL to empty string, the client is still extremely slow, and going to tutorial grinds it to a halt. Here's a CPU utilization graph from a run with empty string: image

ksuprynowicz avatar Nov 15 '25 20:11 ksuprynowicz

It looks like V8 is accessing some sort of a file continuously, which makes it extremely slow? image

ksuprynowicz avatar Nov 15 '25 20:11 ksuprynowicz

The issue is present only on the Debug builds. Release builds start correctly, but tutorial is broken. Spawn position is always 0,0,0 instead of proper one. The issue is visible in the logs:

[11/15 21:51:39] [DEBUG] [hifi.interface] Application title set to: Serverless: file:///~/serverless/tutorial.json (Directory Services: Not Logged In) - Overte - Build Dev-2025-11-15-0
[11/15 21:51:39] [DEBUG] [overte.scriptengine.v8] Deleting object proxy:  ""
[11/15 21:51:39] [DEBUG] [overte.scriptengine] Found script in cache: "portal.js"
[11/15 21:51:39] [DEBUG] [overte.scriptengine.v8] Deleting object proxy:  ""
[Previous message was repeated 14 times]
[11/15 21:51:39] [DEBUG] [overte.scriptengine.v8] Deleting object proxy:  "Stats"
[11/15 21:51:39] [DEBUG] [overte.scriptengine.v8] Deleting object proxy:  ""
[Previous message was repeated 15 times]
[11/15 21:51:39] [DEBUG] [hifi.interface] MyAvatar goToLocation - moving to 1985.26, 1994.24, 1994.25
[11/15 21:51:39] [DEBUG] [overte.scriptengine.v8] Deleting object proxy:  ""
[11/15 21:51:39] [DEBUG] [hifi.interface] MyAvatar goToLocation - new orientation is 0, -0.819884, 0, 0.572529
[11/15 21:51:39] [DEBUG] [overte.scriptengine.v8] Deleting object proxy:  ""
[Previous message was repeated 25 times]

ksuprynowicz avatar Nov 15 '25 20:11 ksuprynowicz

Maybe libnode/V8 has some build flags on debug that are causing issues?

ksuprynowicz avatar Nov 15 '25 20:11 ksuprynowicz

The issue should not be the build flags, as I can not find any problem with that?

I use libnode 22.20 and the conan package shows 22.17.1. Should we update the package to see if it resolves itself?

RTUnreal avatar Nov 17 '25 14:11 RTUnreal

I have tried to create my own flame graph and it seems normal? image

RTUnreal avatar Nov 18 '25 12:11 RTUnreal

I have tried to create my own flame graph (with and without Debug) and it seems normal again? I could not reproduce that issue at all.

The flamegraph (and a friend of mine) also suggests, the issue lies in the kernel and/or setup instead of v8? I have no idea how else to debug that, especially because I couldn't reproduce the issue...

RTUnreal avatar Nov 18 '25 21:11 RTUnreal

After looking into the code flow, I have seen the reason it calls pthread_getattr_np over and over is because a thread_local variable is always NULL? (assumed call-site of pthread_getattr_np1, and where it should've been cached2)

Which would mean, the performance is being degraded by the Isolate::Enter function in a new thread each time it is called? @ksuprynowicz do you know if that could be true?

RTUnreal avatar Nov 30 '25 14:11 RTUnreal

If current domain is the tutorial, this version gets into an endless loop like this:

[12/09 23:10:40] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[12/09 23:10:40] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[12/09 23:10:40] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[12/09 23:10:40] [DEBUG] [hifi.networking] Updated domain port to 40102
[12/09 23:10:40] [DEBUG] [hifi.networking] User entered path could not be handled as a viewpoint -  "/" - will attempt to ask domain-server to resolve.
[12/09 23:10:42] [DEBUG] [hifi.networking] Possible domain change required to serverless domain:  "file:///~/serverless/tutorial.json"
[12/09 23:10:42] [DEBUG] [hifi.networking] Resetting current domain connection information.
[12/09 23:10:42] [DEBUG] [hifi.networking] Soft reset 
[12/09 23:10:42] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[12/09 23:10:42] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[12/09 23:10:42] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[12/09 23:10:42] [DEBUG] [hifi.networking] Updated domain port to 40102
[12/09 23:10:42] [DEBUG] [hifi.networking] User entered path could not be handled as a viewpoint -  "/" - will attempt to ask domain-server to resolve.
[12/09 23:10:45] [DEBUG] [hifi.networking] Possible domain change required to serverless domain:  "file:///~/serverless/tutorial.json"
[12/09 23:10:45] [DEBUG] [hifi.networking] Resetting current domain connection information.
[12/09 23:10:45] [DEBUG] [hifi.networking] Soft reset 
[12/09 23:10:45] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[12/09 23:10:45] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[12/09 23:10:45] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[12/09 23:10:45] [DEBUG] [hifi.networking] Updated domain port to 40102
[12/09 23:10:45] [DEBUG] [hifi.networking] User entered path could not be handled as a viewpoint -  "/" - will attempt to ask domain-server to resolve.
[12/09 23:10:47] [DEBUG] [hifi.networking] Possible domain change required to serverless domain:  "file:///~/serverless/tutorial.json"
[12/09 23:10:47] [DEBUG] [hifi.networking] Resetting current domain connection information.
[12/09 23:10:47] [DEBUG] [hifi.networking] Soft reset 
[12/09 23:10:47] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[12/09 23:10:47] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[12/09 23:10:47] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[12/09 23:10:47] [DEBUG] [hifi.networking] Updated domain port to 40102
[12/09 23:10:47] [DEBUG] [hifi.networking] User entered path could not be handled as a viewpoint -  "/" - will attempt to ask domain-server to resolve.
[12/09 23:10:50] [DEBUG] [hifi.networking] Possible domain change required to serverless domain:  "file:///~/serverless/tutorial.json"
[12/09 23:10:50] [DEBUG] [hifi.networking] Resetting current domain connection information.
[12/09 23:10:50] [DEBUG] [hifi.networking] Soft reset 
[12/09 23:10:50] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[12/09 23:10:50] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[12/09 23:10:50] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[12/09 23:10:50] [DEBUG] [hifi.networking] Updated domain port to 40102
[12/09 23:10:50] [DEBUG] [hifi.networking] User entered path could not be handled as a viewpoint -  "/" - will attempt to ask domain-server to resolve.
[12/09 23:10:52] [DEBUG] [hifi.networking] Possible domain change required to serverless domain:  "file:///~/serverless/tutorial.json"
[12/09 23:10:52] [DEBUG] [hifi.networking] Resetting current domain connection information.
[12/09 23:10:52] [DEBUG] [hifi.networking] Soft reset 
[12/09 23:10:52] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[12/09 23:10:52] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[12/09 23:10:52] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[12/09 23:10:52] [DEBUG] [hifi.networking] Updated domain port to 40102
[12/09 23:10:52] [DEBUG] [hifi.networking] User entered path could not be handled as a viewpoint -  "/" - will attempt to ask domain-server to resolve.
[12/09 23:10:55] [DEBUG] [hifi.networking] Possible domain change required to serverless domain:  "file:///~/serverless/tutorial.json"
[12/09 23:10:55] [DEBUG] [hifi.networking] Resetting current domain connection information.
[12/09 23:10:55] [DEBUG] [hifi.networking] Soft reset 
[12/09 23:10:55] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[12/09 23:10:55] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[12/09 23:10:55] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[12/09 23:10:55] [DEBUG] [hifi.networking] Updated domain port to 40102
[12/09 23:10:55] [DEBUG] [hifi.networking] User entered path could not be handled as a viewpoint -  "/" - will attempt to ask domain-server to resolve.
[12/09 23:10:57] [DEBUG] [hifi.networking] Possible domain change required to serverless domain:  "file:///~/serverless/tutorial.json"
[12/09 23:10:57] [DEBUG] [hifi.networking] Resetting current domain connection information.
[12/09 23:10:57] [DEBUG] [hifi.networking] Soft reset 
[12/09 23:10:57] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[12/09 23:10:57] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[12/09 23:10:57] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[12/09 23:10:57] [DEBUG] [hifi.networking] Updated domain port to 40102
[12/09 23:10:57] [DEBUG] [hifi.networking] User entered path could not be handled as a viewpoint -  "/" - will attempt to ask domain-server to resolve.
[12/09 23:11:00] [DEBUG] [hifi.networking] Possible domain change required to serverless domain:  "file:///~/serverless/tutorial.json"
[12/09 23:11:00] [DEBUG] [hifi.networking] Resetting current domain connection information.
[12/09 23:11:00] [DEBUG] [hifi.networking] Soft reset 
[12/09 23:11:00] [DEBUG] [hifi.networking.ice] Disconnecting from domain server.
[12/09 23:11:00] [DEBUG] [hifi.networking.ice] REASON: "Changing domain URL"
[12/09 23:11:00] [DEBUG] [hifi.networking] Hard reset in NodeList DomainHandler.
[12/09 23:11:00] [DEBUG] [hifi.networking] Updated domain port to 40102

ksuprynowicz avatar Dec 09 '25 22:12 ksuprynowicz

When it's in that state even closing the program is impossible so there's now way to profile it.

ksuprynowicz avatar Dec 09 '25 22:12 ksuprynowicz