diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-04-07 11:12:33 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-04-08 05:48:56 +0000 |
commit | 9c4b308f827cfbb11cdd26b9955b7ca39204886d (patch) | |
tree | 82ac3c8520590fa2734d7e3c3f9cd349f6baf420 /src | |
parent | 7a9a65371c03ca2a3be170156593504b0c1d30af (diff) |
Add possibility to reduce the metadata simultaneous download
For some reason installer freezes on some machines when metadata
download amount exceeds certain limit. Currently it is limited to 1000
simultaneous requests and this has solved the issue previously but now
the issue has recurred. Added a environment variable IFW_METADATA_SIZE
so user can decrease the download amount to prevent freezing.
Task-number: QTAINFRA-3634
Change-Id: I09c2f8e589a6b89f351623666994cc12ebd7054a
Reviewed-by: Johanna Äijälä <johanna.aijala@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/installer/metadatajob.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libs/installer/metadatajob.cpp b/src/libs/installer/metadatajob.cpp index 7d7b46e72..8cecb70e8 100644 --- a/src/libs/installer/metadatajob.cpp +++ b/src/libs/installer/metadatajob.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2018 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -58,6 +58,13 @@ MetadataJob::MetadataJob(QObject *parent) , m_downloadableChunkSize(1000) , m_taskNumber(0) { + QByteArray downloadableChunkSize = qgetenv("IFW_METADATA_SIZE"); + if (!downloadableChunkSize.isEmpty()) { + int chunkSize = QString::fromLocal8Bit(downloadableChunkSize).toInt(); + if (chunkSize > 0) + m_downloadableChunkSize = chunkSize; + } + setCapabilities(Cancelable); connect(&m_xmlTask, &QFutureWatcherBase::finished, this, &MetadataJob::xmlTaskFinished); connect(&m_metadataTask, &QFutureWatcherBase::finished, this, &MetadataJob::metadataTaskFinished); |