aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMcCabe Maxsted2010-05-21 17:27:39 -0700
committerJacek Antonelli2010-06-19 02:40:56 -0500
commit1ac80a81f3990c207b04d560453db831831c1049 (patch)
tree7f54ccdc76f239619ad7bcb53ffa99f395e61a68
parentRemoved some more log spam from loading the water settings (diff)
downloadmeta-impy-1ac80a81f3990c207b04d560453db831831c1049.zip
meta-impy-1ac80a81f3990c207b04d560453db831831c1049.tar.gz
meta-impy-1ac80a81f3990c207b04d560453db831831c1049.tar.bz2
meta-impy-1ac80a81f3990c207b04d560453db831831c1049.tar.xz
Fixed the login screen sometimes stuck on 'Connecting to Region...' while logging onto OpenSim, added debugging info for checking the startup state
-rw-r--r--linden/indra/newview/app_settings/logcontrol.xml6
-rw-r--r--linden/indra/newview/llstartup.cpp49
2 files changed, 46 insertions, 9 deletions
diff --git a/linden/indra/newview/app_settings/logcontrol.xml b/linden/indra/newview/app_settings/logcontrol.xml
index cc4b63b..e276e48 100644
--- a/linden/indra/newview/app_settings/logcontrol.xml
+++ b/linden/indra/newview/app_settings/logcontrol.xml
@@ -42,8 +42,10 @@
42 <array> 42 <array>
43 43
44<!--Unused debug messages below--> 44<!--Unused debug messages below-->
45 45
46 <!--<string>DBUS</string>--> 46 <!--<string>AppInit</string>-->
47 <!--<string>AppInitStartupState</string>-->
48 <!--<string>DBUS</string>-->
47 <!--<string>OpenAL</string>--> 49 <!--<string>OpenAL</string>-->
48 <!--<string>AppCache</string>--> 50 <!--<string>AppCache</string>-->
49 <!--<string>APR</string>--> 51 <!--<string>APR</string>-->
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index e2b6cc5..bbf55f7 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -322,12 +322,13 @@ bool idle_startup()
322 LLMemType mt1(LLMemType::MTYPE_STARTUP); 322 LLMemType mt1(LLMemType::MTYPE_STARTUP);
323 323
324 const F32 PRECACHING_DELAY = gSavedSettings.getF32("PrecachingDelay"); 324 const F32 PRECACHING_DELAY = gSavedSettings.getF32("PrecachingDelay");
325 const F32 TIMEOUT_SECONDS = 5.f; 325 const F32 TIMEOUT_SECONDS = 10.f; // changed from 5 to 10 seconds for OpenSim lag -- MC
326 const S32 MAX_TIMEOUT_COUNT = 3; 326 const S32 MAX_TIMEOUT_COUNT = 3;
327 static LLTimer timeout; 327 static LLTimer timeout;
328 static S32 timeout_count = 0; 328 static S32 timeout_count = 0;
329 329
330 static LLTimer login_time; 330 static LLTimer login_time;
331 static LLTimer connecting_region_timer;
331 static LLFrameTimer wearables_timer; 332 static LLFrameTimer wearables_timer;
332 333
333 // until this is encapsulated, this little hack for the 334 // until this is encapsulated, this little hack for the
@@ -382,6 +383,7 @@ bool idle_startup()
382 383
383 if ( STATE_FIRST == LLStartUp::getStartupState() ) 384 if ( STATE_FIRST == LLStartUp::getStartupState() )
384 { 385 {
386 LL_DEBUGS("AppInitStartupState") << "STATE_FIRST" << LL_ENDL;
385 gViewerWindow->showCursor(); 387 gViewerWindow->showCursor();
386 gViewerWindow->getWindow()->setCursor(UI_CURSOR_WAIT); 388 gViewerWindow->getWindow()->setCursor(UI_CURSOR_WAIT);
387 389
@@ -737,7 +739,7 @@ bool idle_startup()
737 739
738 if (STATE_BROWSER_INIT == LLStartUp::getStartupState()) 740 if (STATE_BROWSER_INIT == LLStartUp::getStartupState())
739 { 741 {
740 LL_DEBUGS("AppInit") << "STATE_BROWSER_INIT" << LL_ENDL; 742 LL_DEBUGS("AppInitStartupState") << "STATE_BROWSER_INIT" << LL_ENDL;
741 std::string msg = LLTrans::getString("LoginInitializingBrowser"); 743 std::string msg = LLTrans::getString("LoginInitializingBrowser");
742 set_startup_status(0.03f, msg.c_str(), gAgent.mMOTD.c_str()); 744 set_startup_status(0.03f, msg.c_str(), gAgent.mMOTD.c_str());
743 display_startup(); 745 display_startup();
@@ -831,6 +833,7 @@ bool idle_startup()
831 833
832 if (STATE_LOGIN_WAIT == LLStartUp::getStartupState()) 834 if (STATE_LOGIN_WAIT == LLStartUp::getStartupState())
833 { 835 {
836 LL_DEBUGS("AppInitStartupState") << "STATE_LOGIN_WAIT" << LL_ENDL;
834 // Don't do anything. Wait for the login view to call the login_callback, 837 // Don't do anything. Wait for the login view to call the login_callback,
835 // which will push us to the next state. 838 // which will push us to the next state.
836 839
@@ -841,6 +844,7 @@ bool idle_startup()
841 844
842 if (STATE_LOGIN_CLEANUP == LLStartUp::getStartupState()) 845 if (STATE_LOGIN_CLEANUP == LLStartUp::getStartupState())
843 { 846 {
847 LL_DEBUGS("AppInitStartupState") << "STATE_LOGIN_CLEANUP" << LL_ENDL;
844 //reset the values that could have come in from a slurl 848 //reset the values that could have come in from a slurl
845 if (!gLoginHandler.getWebLoginKey().isNull()) 849 if (!gLoginHandler.getWebLoginKey().isNull())
846 { 850 {
@@ -1042,12 +1046,14 @@ bool idle_startup()
1042 1046
1043 if (STATE_UPDATE_CHECK == LLStartUp::getStartupState()) 1047 if (STATE_UPDATE_CHECK == LLStartUp::getStartupState())
1044 { 1048 {
1049 LL_DEBUGS("AppInitStartupState") << "STATE_UPDATE_CHECK" << LL_ENDL;
1045 // wait for user to give input via dialog box 1050 // wait for user to give input via dialog box
1046 return FALSE; 1051 return FALSE;
1047 } 1052 }
1048 1053
1049 if(STATE_LOGIN_AUTH_INIT == LLStartUp::getStartupState()) 1054 if(STATE_LOGIN_AUTH_INIT == LLStartUp::getStartupState())
1050 { 1055 {
1056 LL_DEBUGS("AppInitStartupState") << "STATE_LOGIN_AUTH_INIT" << LL_ENDL;
1051//#define LL_MINIMIAL_REQUESTED_OPTIONS 1057//#define LL_MINIMIAL_REQUESTED_OPTIONS
1052 gDebugInfo["GridName"] = LLViewerLogin::getInstance()->getGridLabel(); 1058 gDebugInfo["GridName"] = LLViewerLogin::getInstance()->getGridLabel();
1053 1059
@@ -1109,7 +1115,7 @@ bool idle_startup()
1109 1115
1110 if (STATE_LOGIN_AUTHENTICATE == LLStartUp::getStartupState()) 1116 if (STATE_LOGIN_AUTHENTICATE == LLStartUp::getStartupState())
1111 { 1117 {
1112 LL_DEBUGS("AppInit") << "STATE_LOGIN_AUTHENTICATE" << LL_ENDL; 1118 LL_DEBUGS("AppInitStartupState") << "STATE_LOGIN_AUTHENTICATE" << LL_ENDL;
1113 set_startup_status(progress, auth_desc, auth_message); 1119 set_startup_status(progress, auth_desc, auth_message);
1114 progress += 0.02f; 1120 progress += 0.02f;
1115 display_startup(); 1121 display_startup();
@@ -1186,7 +1192,7 @@ bool idle_startup()
1186 1192
1187 if(STATE_LOGIN_NO_DATA_YET == LLStartUp::getStartupState()) 1193 if(STATE_LOGIN_NO_DATA_YET == LLStartUp::getStartupState())
1188 { 1194 {
1189 LL_DEBUGS("AppInit") << "STATE_LOGIN_NO_DATA_YET" << LL_ENDL; 1195 LL_DEBUGS("AppInitStartupState") << "STATE_LOGIN_NO_DATA_YET" << LL_ENDL;
1190 // If we get here we have gotten past the potential stall 1196 // If we get here we have gotten past the potential stall
1191 // in curl, so take "may appear frozen" out of progress bar. JC 1197 // in curl, so take "may appear frozen" out of progress bar. JC
1192 auth_desc = "Logging in..."; 1198 auth_desc = "Logging in...";
@@ -1211,7 +1217,7 @@ bool idle_startup()
1211 1217
1212 if(STATE_LOGIN_DOWNLOADING == LLStartUp::getStartupState()) 1218 if(STATE_LOGIN_DOWNLOADING == LLStartUp::getStartupState())
1213 { 1219 {
1214 LL_DEBUGS("AppInit") << "STATE_LOGIN_DOWNLOADING" << LL_ENDL; 1220 LL_DEBUGS("AppInitStartupState") << "STATE_LOGIN_DOWNLOADING" << LL_ENDL;
1215 // Process messages to keep from dropping circuit. 1221 // Process messages to keep from dropping circuit.
1216 LLMessageSystem* msg = gMessageSystem; 1222 LLMessageSystem* msg = gMessageSystem;
1217 while (msg->checkAllMessages(gFrameCount, gServicePump)) 1223 while (msg->checkAllMessages(gFrameCount, gServicePump))
@@ -1232,7 +1238,7 @@ bool idle_startup()
1232 1238
1233 if(STATE_LOGIN_PROCESS_RESPONSE == LLStartUp::getStartupState()) 1239 if(STATE_LOGIN_PROCESS_RESPONSE == LLStartUp::getStartupState())
1234 { 1240 {
1235 LL_DEBUGS("AppInit") << "STATE_LOGIN_PROCESS_RESPONSE" << LL_ENDL; 1241 LL_DEBUGS("AppInitStartupState") << "STATE_LOGIN_PROCESS_RESPONSE" << LL_ENDL;
1236 std::ostringstream emsg; 1242 std::ostringstream emsg;
1237 bool quit = false; 1243 bool quit = false;
1238 std::string login_response; 1244 std::string login_response;
@@ -1724,6 +1730,7 @@ bool idle_startup()
1724 //--------------------------------------------------------------------- 1730 //---------------------------------------------------------------------
1725 if (STATE_WORLD_INIT == LLStartUp::getStartupState()) 1731 if (STATE_WORLD_INIT == LLStartUp::getStartupState())
1726 { 1732 {
1733 LL_DEBUGS("AppInitStartupState") << "STATE_WORLD_INIT" << LL_ENDL;
1727 set_startup_status(0.40f, LLTrans::getString("LoginInitializingWorld"), gAgent.mMOTD); 1734 set_startup_status(0.40f, LLTrans::getString("LoginInitializingWorld"), gAgent.mMOTD);
1728 gDisconnected=FALSE; 1735 gDisconnected=FALSE;
1729 display_startup(); 1736 display_startup();
@@ -1798,6 +1805,7 @@ bool idle_startup()
1798 //--------------------------------------------------------------------- 1805 //---------------------------------------------------------------------
1799 if (STATE_MULTIMEDIA_INIT == LLStartUp::getStartupState()) 1806 if (STATE_MULTIMEDIA_INIT == LLStartUp::getStartupState())
1800 { 1807 {
1808 LL_DEBUGS("AppInitStartupState") << "STATE_MULTIMEDIA_INIT" << LL_ENDL;
1801 LLStartUp::multimediaInit(); 1809 LLStartUp::multimediaInit();
1802 LLStartUp::setStartupState( STATE_SEED_GRANTED_WAIT ); 1810 LLStartUp::setStartupState( STATE_SEED_GRANTED_WAIT );
1803 return FALSE; 1811 return FALSE;
@@ -1808,6 +1816,7 @@ bool idle_startup()
1808 //--------------------------------------------------------------------- 1816 //---------------------------------------------------------------------
1809 if(STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) 1817 if(STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState())
1810 { 1818 {
1819 LL_DEBUGS("AppInitStartupState") << "STATE_SEED_GRANTED_WAIT" << LL_ENDL;
1811 return FALSE; 1820 return FALSE;
1812 } 1821 }
1813 1822
@@ -1818,6 +1827,7 @@ bool idle_startup()
1818 //--------------------------------------------------------------------- 1827 //---------------------------------------------------------------------
1819 if (STATE_SEED_CAP_GRANTED == LLStartUp::getStartupState()) 1828 if (STATE_SEED_CAP_GRANTED == LLStartUp::getStartupState())
1820 { 1829 {
1830 LL_DEBUGS("AppInitStartupState") << "STATE_SEED_CAP_GRANTED" << LL_ENDL;
1821 update_texture_fetch(); 1831 update_texture_fetch();
1822 1832
1823 if ( gViewerWindow != NULL) 1833 if ( gViewerWindow != NULL)
@@ -2065,9 +2075,12 @@ bool idle_startup()
2065 LLHUDManager::getInstance()->sendEffects(); 2075 LLHUDManager::getInstance()->sendEffects();
2066 } 2076 }
2067 2077
2078 // Drop out if we can't connect after TIMEOUT_SECONDS -- MC
2079 connecting_region_timer.start();
2068 LLStartUp::setStartupState( STATE_AGENT_WAIT ); // Go to STATE_AGENT_WAIT 2080 LLStartUp::setStartupState( STATE_AGENT_WAIT ); // Go to STATE_AGENT_WAIT
2069 2081
2070 timeout.reset(); 2082 timeout.reset();
2083
2071 return FALSE; 2084 return FALSE;
2072 } 2085 }
2073 2086
@@ -2076,6 +2089,22 @@ bool idle_startup()
2076 //--------------------------------------------------------------------- 2089 //---------------------------------------------------------------------
2077 if (STATE_AGENT_WAIT == LLStartUp::getStartupState()) 2090 if (STATE_AGENT_WAIT == LLStartUp::getStartupState())
2078 { 2091 {
2092 LL_DEBUGS("AppInitStartupState") << "STATE_AGENT_WAIT" << LL_ENDL;
2093 if (connecting_region_timer.getElapsedTimeF32() > TIMEOUT_SECONDS)
2094 {
2095 // Bounce back to the login screen -- MC
2096 LL_WARNS("AppInit") << "Bad login - can't connect to this region for some reason" << LL_ENDL;
2097 LLSD args;
2098 args["ERROR_MESSAGE"] = "Unable to connect to the current region. Try logging into a different region instead. The default login location can be set in the General tab in Preferences.";
2099 LLNotifications::instance().add("ErrorMessage", args, LLSD(), login_alert_done);
2100 LLStartUp::resetLogin();
2101 gSavedSettings.setBOOL("AutoLogin", FALSE);
2102 //this might be redundant
2103 LLStartUp::setShouldAutoLogin(false);
2104 show_connect_box = true;
2105 connecting_region_timer.reset();
2106 }
2107
2079 LLMessageSystem* msg = gMessageSystem; 2108 LLMessageSystem* msg = gMessageSystem;
2080 while (msg->checkAllMessages(gFrameCount, gServicePump)) 2109 while (msg->checkAllMessages(gFrameCount, gServicePump))
2081 { 2110 {
@@ -2098,6 +2127,7 @@ bool idle_startup()
2098 if (gAgentMovementCompleted) 2127 if (gAgentMovementCompleted)
2099 { 2128 {
2100 LLStartUp::setStartupState( STATE_INVENTORY_SEND ); 2129 LLStartUp::setStartupState( STATE_INVENTORY_SEND );
2130 connecting_region_timer.reset();
2101 } 2131 }
2102 2132
2103 return FALSE; 2133 return FALSE;
@@ -2108,6 +2138,8 @@ bool idle_startup()
2108 //--------------------------------------------------------------------- 2138 //---------------------------------------------------------------------
2109 if (STATE_INVENTORY_SEND == LLStartUp::getStartupState()) 2139 if (STATE_INVENTORY_SEND == LLStartUp::getStartupState())
2110 { 2140 {
2141 LL_DEBUGS("AppInitStartupState") << "STATE_INVENTORY_SEND" << LL_ENDL;
2142
2111 // unpack thin inventory 2143 // unpack thin inventory
2112 LLUserAuth::options_t options; 2144 LLUserAuth::options_t options;
2113 options.clear(); 2145 options.clear();
@@ -2303,6 +2335,7 @@ bool idle_startup()
2303 //--------------------------------------------------------------------- 2335 //---------------------------------------------------------------------
2304 if (STATE_MISC == LLStartUp::getStartupState()) 2336 if (STATE_MISC == LLStartUp::getStartupState())
2305 { 2337 {
2338 LL_DEBUGS("AppInitStartupState") << "STATE_MISC" << LL_ENDL;
2306 // We have a region, and just did a big inventory download. 2339 // We have a region, and just did a big inventory download.
2307 // We can estimate the user's connection speed, and set their 2340 // We can estimate the user's connection speed, and set their
2308 // max bandwidth accordingly. JC 2341 // max bandwidth accordingly. JC
@@ -2493,6 +2526,7 @@ bool idle_startup()
2493 2526
2494 if (STATE_PRECACHE == LLStartUp::getStartupState()) 2527 if (STATE_PRECACHE == LLStartUp::getStartupState())
2495 { 2528 {
2529 LL_DEBUGS("AppInitStartupState") << "STATE_PRECACHE" << LL_ENDL;
2496 F32 timeout_frac = timeout.getElapsedTimeF32()/PRECACHING_DELAY; 2530 F32 timeout_frac = timeout.getElapsedTimeF32()/PRECACHING_DELAY;
2497 2531
2498 // We now have an inventory skeleton, so if this is a user's first 2532 // We now have an inventory skeleton, so if this is a user's first
@@ -2535,7 +2569,7 @@ bool idle_startup()
2535 2569
2536 if (STATE_WEARABLES_WAIT == LLStartUp::getStartupState()) 2570 if (STATE_WEARABLES_WAIT == LLStartUp::getStartupState())
2537 { 2571 {
2538 2572 LL_DEBUGS("AppInitStartupState") << "STATE_WEARABLES_WAIT" << LL_ENDL;
2539 const F32 wearables_time = wearables_timer.getElapsedTimeF32(); 2573 const F32 wearables_time = wearables_timer.getElapsedTimeF32();
2540 const F32 MAX_WEARABLES_TIME = 10.f; 2574 const F32 MAX_WEARABLES_TIME = 10.f;
2541 2575
@@ -2595,6 +2629,7 @@ bool idle_startup()
2595 2629
2596 if (STATE_CLEANUP == LLStartUp::getStartupState()) 2630 if (STATE_CLEANUP == LLStartUp::getStartupState())
2597 { 2631 {
2632 LL_DEBUGS("AppInitStartupState") << "STATE_CLEANUP" << LL_ENDL;
2598 set_startup_status(1.0, "", ""); 2633 set_startup_status(1.0, "", "");
2599 2634
2600 LLFirstUse::ClientTags(); 2635 LLFirstUse::ClientTags();