SmartGit sh.exe STATUS_STACK_OVERFLOW
С недавнего времени смартгит начал вести себя странно, иногда создавались файлы со стек трейсом от ошибок, а в последнее время так и вообще, fast forward merge не выполнялся с совершенно странным поведением: все изменённые файлы в процессе фаст форварда показывались удалёнными, это отображалось как конфликт и ничего нельзя было сделать.
В корне репозитория создавался файл sh.exe.stackdump
с примерно таким содержимым:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Exception: STATUS_STACK_OVERFLOW at rip=7FF9E541EC07 rax=0000000000001058 rbx=00000000007E39A0 rcx=8FE100CCD4E70000 rdx=00000000007E0000 rsi=000000000080349C rdi=0000000000000001 r8 =00000000007E943C r9 =000000000000001B r10=00000000FFFFA000 r11=00000000FFE03E50 r12=0000000000000424 r13=0000000000803480 r14=0000000000000000 r15=0000000000000000 rbp=00000000007E39A0 rsp=00000000FFFFB560 program=C:\Program Files (x86)\SmartGit\git\usr\bin\sh.exe, pid 8336, thread cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B Stack trace: Frame Function Args 000007E39A0 7FF9E541EC07 (00180010018, 000007E325E, 0000080349C, 00180010018) 000007E39A0 7FF9E13C54EA (000007E325E, 0000080349C, 00180010018, 000FFFFB950) 000007E39A0 7FF9E13C72CE (000007E39A6, 000000002E4, 00000000420, 000008036EC) 000000002E4 7FF9E13C79C6 (000FFFFB880, 0000000023C, 00000000000, 0018028E980) 000000002E4 7FF9E2188966 (00000000001, 00000000000, 0018022F490, 00000000001) 000000002E4 7FF9E457A103 (00000000020, 00000000000, 000FFFFBAD0, 00000000001) 000000002E4 001800AB2B5 (000FFFFBA70, 0018028E980, 00000000001, 00000000001) 000FFFFBCE0 001800ABFF5 (00100410FBB, 00180321130, 0060004B5B0, 001004E9740) 000FFFFBCE0 0018011DDBB (00100410FBB, 00180321130, 0060004B5B0, 001004E9740) 000FFFFBCE0 0000295E458 (00100410FBB, 00180321130, 0060004B5B0, 001004E9740) End of stack trace |
Пробовал много чего делать. И обновлять программы, и откатываться к старым версиям, и ставить отдельный гит для виндоус, направлять смартгит туда. И прописывать разнообразные пути Path
в системе, есть много разных мест, откуда можно взять sh.exe
и git.exe
.
Удалось увидеть, что если Sublime Text
запущен, проблема есть. Если не запущен, проблемы нет. Вот это да, приплыли. Пробовал обновлять Sublime, смотреть на это дело через тот же Process Monitor
, единственную разницу увидел: без саблайма гит во время ребейза (fast forward) удаляет файл, тут же его создаёт, всё хорошо. С саблаймом в этот файл в реальном времени смотрит ещё и саблайм, даже если именно этот файл в саблайме не открыт, вероятно тут остаются открытыми какие-то хендлы к файлу, но после удаления файла гитом, следующие несколько команд не создают файл как надо, а имеют статус DELETE PENDING
, и только через несколько обращений уже получается PATH NOT FOUND
, дальше видимо гит сдаётся, ну нет файла и нет, видимо так и должно быть.
В общем, решение нашлось на stackoverflow. Я действительно заметил, что баг как-то связан с антивирусом, но эксперименты с перезагрузками этого не подтвердили. Решение в том, чтобы добавить sh.exe
в исключения для специального механизма анализа шелл инъекций антивируса COMODO Internet Security Premium 10.
Виноват антивирус COMODO Internet Security Premium 10.
Теперь, наконец-то, всё прекрасно работает.
Фух!
Обсуждение
Спасибо большое, помогло! rebase зависал.
Здравствуйте, rutopy. Пожалуйста!