From 71a98e55d323b3e20bfc94604ed00054cbed701a Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 8 Dec 2023 02:14:18 +0000 Subject: [PATCH] FIRE-33841 - FS Hangs on login This is triggered by having the stats window open from a previous session. The drawTicks call then manages to get a value_scale = INF call when drawing packet_loss. This causes the main thread to block forever in the loop. the visible symptoms (apart from the hung viewer login) are the event queue filling (reported in the log) because the main thread is no longer consuming. --- indra/llui/llstatbar.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp index 402dea7771..d8f0bda543 100644 --- a/indra/llui/llstatbar.cpp +++ b/indra/llui/llstatbar.cpp @@ -726,6 +726,13 @@ void LLStatBar::drawLabelAndValue( F32 value, std::string &label, LLRect &bar_re void LLStatBar::drawTicks( F32 min, F32 max, F32 value_scale, LLRect &bar_rect ) { + // FIRE-33481 - FS hangs on login, progress bar full + LL_DEBUGS("STATBAR") << "name: " << this->getName() << "min: " << min << ", max: " << max << ", value_scale: " << value_scale << LL_ENDL; + if ( value_scale == INFINITY ) + { + return; + } + // if (!llisnan(min) && (mAutoScaleMax || mAutoScaleMin)) { F32 u = LLSmoothInterpolation::getInterpolant(10.f);