LINUX.ORG.RU
ФорумTalks

У меня упал терминал

 , , ,


0

2

Смотрю что-то почти все окна (штук 30) пропали. Сначала подумал что это wm почему-то их потерял, но нет

**
VTE:ERROR:../src/vtestream-file.h:403:void _vte_snake_reset(VteSnake*, gsize): assertion failed (offset >= snake->tail): (0 >= 4294901760)
Bail out! VTE:ERROR:../src/vtestream-file.h:403:void _vte_snake_reset(VteSnake*, gsize): assertion failed (offset >= snake->tail): (0 >= 4294901760)
Aborted

вот так вот, из-за того что авторы libvte посчитали какой-то 32-битный счётчик бесконечным и не предусмотрели врап, упавший xfce4-terminal похоронил бережно накопленное за полгода работы состояние окон, по которому я уже привык ориентироваться в текущих делах.

Судя потому, что у пакета libvte указан homepage на gnome.org, виноваты как всегда гномеры.

К счастью, одно весьма важное окно с 10 вкладками было открыто с --disable-server и его этот краш не зацепил. Возможно надо по-дефолту этот режим использовать.

★★★★★

бережно накопленное за полгода работы состояние окон

Кошмар-то какой.

frunobulax ★★★
()

libvte

Зачем? Не проще ли использовать например st? Там нет привязки к libvte, соотвественно такая ошибка невозможна.

vbcnthfkmnth123 ★★★★★
()

упавший xfce4-terminal похоронил бережно накопленное за полгода работы состояние окон, по которому я уже привык ориентироваться в текущих делах.

Могу посоветовать тебе авесому. Там можно заранее прописать где какое окно будет расположено после запуска wm.

u5er ★★
()

assertion failed (offset >= snake->tail)

У змейки хвост отвалился.

rupert ★★★★★
()

упавший xfce4-terminal похоронил бережно накопленное за полгода работы состояние окон, по которому я уже привык ориентироваться в текущих делах

полагаю, здесь сразу с медикаментозного надо начинать

targitaj ★★★★★
()
Ответ на: комментарий от u5er

int соответствует int32 на 32-битной платформе и int64 на 64-битной платформе. Это означает, что если ваша программа работает на 32-битной архитектуре, то тип int будет соответствовать типу int32, а если на 64-битной платформе – int64.

tiinn ★★★★★
()
Ответ на: комментарий от tiinn

Я имел в виду то, что в результате работы программы

#include <stdio.h>

int main( int argc, char* argv[], char* envp[] ){
	printf( "%lu\n", sizeof(int) );
	return 0;
}

на выхлопе будет 4 и на 32 и на 64 битных системах.

u5er ★★
()

упавший xfce4-terminal похоронил бережно накопленное за полгода работы состояние окон, по которому я уже привык ориентироваться в текущих делах.

ты откуда и как к нам попал?
этот IT не для тебя

olelookoe ★★★
()
Ответ на: комментарий от u5er

@QsUPt7S, возможно, я не прав, но единственный сдучай, когда у меня int был не 4 байта - это на ардуинах. Там размер был 2 байта. На «обычных» процах я везде видел только 4 байта.

u5er ★★
()
Ответ на: комментарий от u5er

Мне не расположение окон нужно, а запущеные в них шеллы с длинными историями (лимит на скроллбак отключил), текстовые редакторы, просто открытые директории в mc (посмотрел - вспомнил что я тут что-то хотел сделать), и ещё что-то.

firkax ★★★★★
() автор топика

бережно накопленное за полгода работы состояние окон

Здесь проблема.

Комп включается утром и выключается вечером. Полность, без трюков со сном. Всё остальное это сорта локалхостного админства с дрочкой на аптайм.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Ты какую-то чушь несёшь. Нафиг мне терять состояние каждый день? А тем более, нафиг мне его вечером выключать если он может в любое время суток пригодиться? Это у тебя дрочка на какие-то правила полувековой давности про обесточивание техники.

firkax ★★★★★
() автор топика
Ответ на: комментарий от ox55ff

Здесь проблема.

Это не проблема, а единственное на сейчас решение для сохранения рабочей сессии. Мне что каждое утро 100500 окон раставлять на нужных местах, открывать заново терминалы и все проги? Только s3 ram и спасает.

arrecck ★★★
()

А отправь им баг, очень хочется почитать там каменты.

thesis ★★★★★
()
Ответ на: комментарий от firkax

Это у тебя дрочка на какие-то правила полувековой давности про обесточивание техники.

Обесточить могут и против твоего желания 😊

frunobulax ★★★
()

А у меня tilix в последнее время чудит. Даже перечислять не стану. Но пока всё равно его использую, такого удобного разделения окон нигде нет, терминатор есть, но такое себе.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от firkax

Состояние должно быть на диске. А ты развёл у себя в дополнению к хламу на диске хлам в оперативке и гордишься этим. Эта груда костылей может в любой момент с грохотом развалиться, да она собственно уже развалилась раз уж ты тут. Но вместо того чтобы понять каким говном ты занимаешься и образумиться ты нападаешь на других людей.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Эта груда костылей может в любой момент с грохотом развалиться

Бхггг. Пришло время ребутать линукс! Ребутни линукс, пока всё не успело развалиться само!

thesis ★★★★★
()
Ответ на: комментарий от her_s_gory

Это про окружение рабочего стола: gnome, kde и т.д.

ox55ff ★★★★★
()
Ответ на: комментарий от thesis

Я так понимаю ты работаешь с live cd? Ну а чё, перезагрузка всё равно не нужна же. Стейт на диске лишний.

ox55ff ★★★★★
()
Ответ на: комментарий от tiinn

На всех нормальных платформах int всегда 32 битный. На x86_64 именно так.

ox55ff ★★★★★
()

xfce4-terminal

А не надо этим пользоваться.

papin-aziat ★★★★★
()
Ответ на: комментарий от tiinn

Что за бред? Это для какого жавоскрипта так? В си-подобных инт приклеен к 32 битам.

PPP328 ★★★★★
()
Ответ на: комментарий от u5er

возможно, я не прав, но единственный сдучай, когда у меня int был не 4 байта - это на ардуинах. Там размер был 2 байта. На «обычных» процах я везде видел только 4 байта.

Ты прав.

Размеры базовых математических типов int, long в различных ОС в зависимости от битности

Xintrea ★★★★★
()
Последнее исправление: Xintrea (всего исправлений: 1)

упавший xfce4-terminal похоронил бережно накопленное за полгода работы состояние окон, по которому я уже привык ориентироваться в текущих делах

Не могу формализовать почему именно, но я совсем не удивлен.

MoldAndLimeHoney
()
Ответ на: комментарий от frunobulax

У ноута есть аккум и аварийный сон при 20% (если я сам вовремя не предприму ничего). Если этих 20% не хватит переждать отключение то плохо да.

firkax ★★★★★
() автор топика
Ответ на: комментарий от Shushundr

Я не знаю, что они используют. Я просто написал пример, как может быть на 64 битной системе 32 битный счётчик.

u5er ★★
()
Ответ на: комментарий от Shushundr

Они не думали, что найдется фанат их терминала, который будет держать терминал открытым полгода и поставит бесконечный буфер прокрутки.

rupert ★★★★★
()
Ответ на: комментарий от Shushundr

ещё не все time_t are 64bits, в тестинге была акция последние полгода по переводу счётчиков времени на 64 бита, т.е. фиксили и пересобирали всё что использует time_t, всё прикладное и системное ПО.
недавно только успокоились, с другой стороны - всё работает.

ps. fyi - https://wiki.debian.org/ReleaseGoals/64bit-time

etwrq ★★★★★
()
Ответ на: комментарий от u5er

https://github.com/GNOME/vte/blob/0d393b6cd6a24f53eaefa16764b9453a1483acf5/src/vtestream-file.h#L350

typedef struct _VteSnake {
        GObject parent;
        int fd;
        int state;
        struct {
                gsize st_tail;  /* Stream's logical tail offset. */
                gsize st_head;  /* Stream's logical head offset. */
                gsize fd_tail;  /* FD's physical tail offset. */
                gsize fd_head;  /* FD's physical head offset. One of these four is redundant, nevermind. */
        } segment[3];           /* At most 3 segments, [0] at the tail. */
        gsize tail, head;       /* These are redundant too, for convenience. */
} VteSnake;

Теперь знаешь.

Shushundr ★★★★
()
Последнее исправление: Shushundr (всего исправлений: 1)
Ответ на: комментарий от u5er

Судя по официальной документации,
https://docs.gtk.org/glib/types.html#gsize
на 64-х битной платформе gsize должен быть 64 бита.

4294901760 (0xFFFF0000)

Надо выяснить, откуда берётся эта константа. А то может поле-то и 64-х битное, а вот значение в нём - маленькое.

Shushundr ★★★★
()
Последнее исправление: Shushundr (всего исправлений: 2)
Ответ на: комментарий от Shushundr

Поле 32-битное, у меня 32-битная система. То что гномокодеры не знают стандартов и считают что size всегда 64 - плохо говорит только о них. Но дело даже не в этом, битность не важна, если у тебя скользящий буфер то врап всегда надо предусматривать, а не делать предположений «да наверно не дойдём до него».

0xFFFF0000 это последний 64кб блок из возможных, после него идёт нулевой.

firkax ★★★★★
() автор топика

накопленное за полгода работы состояние окон

И ты не ребутал комп ни разу? И систему обновлял при этом?

Gonzo ★★★★★
()
Ответ на: комментарий от firkax

у меня 32-битная система.

А вот и вторая проблема вскрылась.

ox55ff ★★★★★
()
Ответ на: комментарий от Gonzo

С тех пор как выявил и ликвидировал единственную критичную проблему (сон во время висящего fuse-запроса не просыпается и приходится ребутать) - не ребутал. Ядро, очевидно, не обновлял (5.10.197 запущено).

firkax ★★★★★
() автор топика
Ответ на: комментарий от firkax

Ядро, очевидно, не обновлял

А мог бы. Там для этого специальный механизм есть. Мы бы все обзавидовались и слюной истекли.

Shushundr ★★★★
()
Ответ на: комментарий от firkax

не ребутал

А не мешало бы. Прикалываешься?.. Софт, либы обновляются, а он сидит и в ус не дует. Вообще удивляюсь, как все остальное у тебя работает.

И да, велкам сюда, если проблема реально существует (после ребута и тестов): https://gitlab.gnome.org/GNOME/vte/-/issues

Gonzo ★★★★★
()
Последнее исправление: Gonzo (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)