Критическая ошибка. БАС полностью закрывается/вылетает.



  • Обнаружил ошибку, при работе с регуляркой, которая полностью останавливает работу БАС
    Версия БАС 21.5.2
    Ось, Windows 7, x64
    Файл проекта при котором происходит ошибка 0_1546696993210_error.xml

    Сама регулярка

    (?:[А-ЯA-Z](?:(?:т.п.|т.д.|пр.)|[^?!.\(]|\([^\)]*\))*[.?!])
    

    разбивает текст на предложения, но если текст состоит из длинных участков перечислений, и она не может найти переложения. Короче, тогда БАС и крашится, видать памяти не хватает или хз.
    Чито делать? Как разбить предложения не разбив БАС? :)



  • https://regex101.com/ пишет Catastrophic backtracking
    Ну, короче понятно что ошибка регулярки. Другой вопрос, что БАС по идее не крашится должен в такой ситуации а отдавать ошибку, Catastrophic backtracking. Ибо вылавливать это было ой как не просто, у меня 30 потоков, в каждом свой текст, ошибка валится раз в пол часа. Короче, тот еще гемор.



  • @samael_96 said in Критическая ошибка. БАС полностью закрывается/вылетает.:

    https://regex101.com/ пишет Catastrophic backtracking
    Ну, короче понятно что ошибка регулярки. Другой вопрос, что БАС по идее не крашится должен в такой ситуации а отдавать ошибку, Catastrophic backtracking. Ибо вылавливать это было ой как не просто, у меня 30 потоков, в каждом свой текст, ошибка валится раз в пол часа. Короче, тот еще гемор.

    Ни разу не слышал про ошибку Catastrophic backtracking, пост скинул @support 'y.



  • @fox said in Критическая ошибка. БАС полностью закрывается/вылетает.:

    @samael_96 said in Критическая ошибка. БАС полностью закрывается/вылетает.:

    https://regex101.com/ пишет Catastrophic backtracking
    Ну, короче понятно что ошибка регулярки. Другой вопрос, что БАС по идее не крашится должен в такой ситуации а отдавать ошибку, Catastrophic backtracking. Ибо вылавливать это было ой как не просто, у меня 30 потоков, в каждом свой текст, ошибка валится раз в пол часа. Короче, тот еще гемор.

    Ни разу не слышал про ошибку Catastrophic backtracking, пост скинул @support 'y.

    Fox. У меня одна надежда на вас. Вы вроде с регулярками очень хорошо знакомы.
    Как бы ее допилить вот эту регу

    (?:[А-ЯA-Z](?:(?:т.п.|т.д.|пр.)|[^?!.\(]|\([^\)]*\))*[.?!])
    

    Чтобы она разбивала по предложениям, еще и брала переносы строк? Я так понял что текст который я пытаюсь ей разбить:

    <li>Самоппроизвольное закрытие BAS</li>
    <li>Происходит самоппроизвольный краш BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Происходит самоппроизвольный краш BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Происходит самоппроизвольный краш BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Происходит самоппроизвольный краш BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Происходит самоппроизвольный краш BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Происходит самоппроизвольный краш BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>Самоппроизвольное закрытие BAS</li>
    <li>							
    

    Слишком длинный, и она начинает тупо перебирать все варианты, и если бы не вылет, то система тупо бы зависла со 100% использованием проца.



  • @samael_96 said in Критическая ошибка. БАС полностью закрывается/вылетает.:

    Как бы ее допилить вот эту регу

    Я бы упростил эту регулярку, ошибка Catastrophic backtracking происходит если на regex101.com выбрать язык php
    0_1546712305804_3cd1866b-9525-417a-9082-bbf87e3ce9c7-изображение.png


    Но если выбрать Javascript, то ошибка сменится на Timeout
    0_1546712374218_2cf47961-b925-47d5-bf9f-7d9d0cf057a0-изображение.png


    Попробуйте

    ([А-ЯЁ][^\.]+\.)
    

    Либо предоставьте по больше вариантов исходного текста.


Log in to reply