ugeneunipro / ugene

UGENE is free open-source cross-platform bioinformatics software
http://ugene.net
GNU General Public License v2.0
213 stars 62 forks source link

UGENE-8094 Primer3 returns NULL #1626

Closed DmitriiSukhomlinov closed 5 months ago

DmitriiSukhomlinov commented 5 months ago

Воспроизвести проблему на своем компьютере у меня не удалось, но где она возникла очень хорошо видно - функция runPrimer3() вернула nullptr. Я поисследовал начинку Primer3 и увидел, что такое могло произойти, в первую очередь, если не получилось выделить память. Почему тако получилось - могу только гадать. Вставил CHECK на этот случай.

Так же, по логу крэша было понятно, какую последовательность использовал пользователь и она очень длинная. У нас в диалоге Primer3 встроен определенный механизм, который предупреждает пользователя о проблеме с какими-то входными параметрами (слишком длинная последовательность - это как раз одна из таких проблем), однако, все равно позволяет запустить расчет. В некоторых случаях этого не стоит позволять делать, т.к. может либо потенциально произойти какая-нибудь проблема (как в данном случае, из-за слишком длинной последовательности), либо априори уже известно, что такая конфигурация данных не позволит выполниться расчету до конца. Я расширил механизм проверки и добавил в него понятие критических ошибок которые нужно обязательно править.

yalgaer commented 5 months ago

Замечаний нет, апрув после зеленых тестов

DmitriiSukhomlinov commented 5 months ago

Все тесты прошли (кроме нестабильного XML)