ugene
ugene copied to clipboard
UGENE-8094 Primer3 returns NULL
Воспроизвести проблему на своем компьютере у меня не удалось, но где она возникла очень хорошо видно - функция runPrimer3()
вернула nullptr
. Я поисследовал начинку Primer3 и увидел, что такое могло произойти, в первую очередь, если не получилось выделить память. Почему тако получилось - могу только гадать. Вставил CHECK
на этот случай.
Так же, по логу крэша было понятно, какую последовательность использовал пользователь и она очень длинная. У нас в диалоге Primer3 встроен определенный механизм, который предупреждает пользователя о проблеме с какими-то входными параметрами (слишком длинная последовательность - это как раз одна из таких проблем), однако, все равно позволяет запустить расчет. В некоторых случаях этого не стоит позволять делать, т.к. может либо потенциально произойти какая-нибудь проблема (как в данном случае, из-за слишком длинной последовательности), либо априори уже известно, что такая конфигурация данных не позволит выполниться расчету до конца. Я расширил механизм проверки и добавил в него понятие критических ошибок которые нужно обязательно править.