-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Cannot Reproduce
-
Affects Version/s: 33, 34, 35, 36, 37, 38, 39, 38.1, 40, 41, 40.1, 42, 43, 44, 45, 46, 47, 48
-
Fix Version/s: None
-
Component/s: Basic-Nucl, seq
-
Labels:
-
Tests Type:Functional/Unit
-
Sprint:DEV-50-5, DEV-50-RELEASE
-
User Requests Number:4
-
Affect Type:Userdefined
The exact version of the bug occurrence is unknown. The earliest in crash reports is 33.
UPD: The scenario and explanations below are wrong. See the scenario comment instead.
Many of our tasks use parts of a sequence. They use the U2SequenceObject::getSequenceData function. For example:
- CreateExportItemsFromSeqRegionsTask
- SequenceContentFilterTask
- FindPatternWidget::initFindPatternTask
This function stores a fragment of a sequence in RAM. But there is no check whether the available RAM is enough to store it entirely. This piece itself may be long.
One of the reproduction scenarios (based on crash reports 2586 and 2585):
- Make sure your computer currently has no more than 2 GB of available RAM.
- Download GCA_900491605.1_Calamus_simplicifolius_genomic
- from https://www.ncbi.nlm.nih.gov/assembly/GCA_900491605.1/?shouldredirect=false
- click "Download Assembly"
- Source database (GenBank or RefSeq)=GenBank
- File type=Genomic FASTA (.fna)
- Open the file in UGENE.
- The "Sequence Reading Options" dialog appears.
- Select "Merge sequences into a single sequence..."
Expected: the SV window appears.
- Select the entire sequence as the region (Ctrl+A).
- Actions->Export->Export selected sequence region...
The "Export Selected Sequence Region" dialog appears. - Click Export.
Current state: possible crash.
Please note that scenario is very similar to 7484 and crash report 1255. They have the same root of the problem (placing a large amount of data in RAM), but different crash locations: in the current bug the crash occurs on the QByteArray::mid function, in the other – QByteArray::append.
Solution suggestion:
- Make the region export task (example scenario) stable within this issue.
Region must be exported to another sequence in small chunks. - Fix problems in other tasks/places.
If it makes sense for a task, then make it work not with the entire large chunk of the sequence, but only with part of it. If using a small sequence fragment instead of the entire large sequence in a task doesn't make sense (for example, Ctrl+C), cancel/fail the task. See also QByteArray limitations. Catch exceptions when necessary.
- relates to
-
UGENE-8125 [Crash, sequence] 4209_1 failure, cache race condition
- Open
- links to