0
<< предыдущая заметкаследующая заметка >>
12 апреля 2015
Занимательная информатика

Вопрос: два компа под Линуксом соединены в сеть, на одном поднят SMB-сервер Samba, на другом — SMB клиент (cifs). При копировании длинного файла на сервер записывается ровно 2048Мб, после чего возникает ошибка. В каких настройках проблема?

Ответ под катом.
[...]Правильный ответ: просто на диске сервера осталось свободно ровно 2048Мб. Ну почему со мной всегда случается такое?!

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows Opera
 Санкт-Петербург
0
0
Шура
Ну почему только с тобой :)))) я, правда, довольно быстро доагдался ;)
Windows Firefox
 Израиль
8
0
braintunic
Ровно ДВА ГИГАБАЙТА?
То есть, именно тот порог, на котором может произойти туева хуча разнообразнейших несовместимостей, как на уровне файловой системы так и на уровне сетевого протокола?

Боюсь, что ТАКОЕ случается только с особо избранными персонами ;)
Windows Firefox
 Израиль
3
0
braintunic
Сколько часов потратил на debugging?

Из опыта, поимка проблем такого типа нередко выливается в анализ дампов strace и tcpdump, и может отнять целый рабочий день ;)
Linux Firefox
 Richardson
0
0
Михаил
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Про линукс не помню, а если в винде копировать «проводником» или FARом, то прямо так и говорит, что не осталось места на диске. ;–) Видимо, для этого есть специальный код ошибки, и если его не игнорировать, то всё должно быть очевидно.
Mac Safari
 Израиль
1
0
braintunic
Ну мы же с вами прекрасно знаем, что программист LLeo принципиально никогда не проверяет код ошибки после системного вызова "read()" или "write()" ;)
Linux Firefox
 Richardson
0
0
Михаил
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Мне кажется, он всё-таки не с помощью read()/write() копировал, а более высокоуровневыми средствами. ;–)
Сейчас проверил — и mc, и cp человеческим языком говорят: "No space left on device".
Может быть, у самбы (вообще или линуксовой реализации) какие-то другие представления об ошибках, но эта даже в POSIX определена (как ENOSPC).
Linux Firefox
 Москва
0
2
Фыва Jr Олдж
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Он говорит не места не осталось, а комнаты, "There is not enough room" :-E Английский язык такой убогий! Как сами англичане.
Mac Safari
 Израиль
1
0
braintunic
Ну, Фыва, опять всё перепутал!
Не "комнаты" не осталось, а "космоса" не осталось.

Это сообщение об ошибке пишется вот так:
"No space left on device".

В переводе: "нет левого космоса на устройстве".

Вот такой он, английский язык...
Linux Firefox
 Москва
0
0
Фыва Jr Олдж
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Может быть виндовый проводник и пишет про космос, но DOS'овский Norton Commander писал именно "There is not enough room", а DOS'овский Volcov Commander писал "There isn't enough room", экономили даже на вспомогательных гаголах, боролись за каждый байт чтобы уместить Volcov Commander в .com, который не может быть больше 64Kb. Как пишет проводник смотреть лениво, как пишет FAR смотреть тоже лениво, как пишет Norton Commander посмотреть не могу за неимением оного (ещё со времён DOS когда я увидел Volcov Commander я забыл про NC как про страшный сон). VC у меня в наличии до сих пор, я его в DOSBOX использую очень иногда когда что-нибудь в DOSBOX запускаю. Т.к. физически засирать заполнять диски я не намерен, то просто покажу на скриншоте сообщение, которое находится у VC в пузе:





Так что насчёт VC (если надо, то переборю свою лень, скачаю NC и сделаю то же самое для него) у меня все ходы записаны! Комнаты, именно комнаты нет для копирования! :-E Я это помню ещё с 1988-го года, когда за "Правец-16" сидел на МПО "Салют" :-E А VC товарищ Всеволод Волков внешне делал под NC, так что не только "синие панельки" такие же, но и все сообщения.
Linux Firefox
 Москва
0
3
Фыва Jr Олдж
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Может быть виндовый проводник и пишет про космос, но DOS'овский Norton Commander писал именно "There is not enough room", а DOS'овский Volcov Commander писал "There isn't enough room", экономили даже на вспомогательных гаголах, боролись за каждый байт чтобы уместить Volcov Commander в .com, который не может быть больше 64Kb. Как пишет проводник смотреть лениво, как пишет FAR смотреть тоже лениво, как пишет Norton Commander посмотреть не могу за неимением оного (ещё со времён DOS когда я увидел Volcov Commander я забыл про NC как про страшный сон). VC у меня в наличии до сих пор, я его в DOSBOX использую очень иногда когда что-нибудь в DOSBOX запускаю. Т.к. физически засирать заполнять диски я не намерен, то просто покажу на скриншоте сообщение, которое находится у VC в пузе:






Так что насчёт VC (если надо, то переборю свою лень, скачаю NC и сделаю то же самое для него) у меня все ходы записаны! Комнаты, именно комнаты нет для копирования! :-E Я это помню ещё с 1988-го года, когда за "Правец-16" сидел на МПО "Салют" :-E А VC товарищ Всеволод Волков внешне делал под NC, так что не только "синие панельки" такие же, но и все сообщения.
Mac Safari
 Израиль
0
0
braintunic
Да, моя ошибка, я не обратил внимания, что Михаил имел в виду копирование "в винде".

Я то полагал, что разговор всё ещё идёт про Линукс.
Linux Firefox
 Richardson
0
0
Михаил
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Чтобы поддержать сию глубокосодержательную беседу, специально сейчас проверил. По крайней мере, в американской XP:
Explorer проверяет место ещё до копирования и сразу говорит: «The file being copied is too large for the destination drive.»
FAR при использовании системной функции тоже проверяет заранее и говорит: «There is not enough space on the disk.», при собственном копировании заранее не проверяет, но потом говорит то же самое (это, видимо, системное описание ошибки, т.к. его можно найти в kernel32). Иногда говорит просто «The disk is full.»
Никакого «room» найти не удалось.
Linux Firefox
 Москва
0
0
Фыва Jr Олдж
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
> FAR при использовании системной функции тоже проверяет заранее и говорит: «There is not enough space on the disk.», при собственном копировании заранее не проверяет, но потом говорит то же самое (это, видимо, системное описание ошибки, т.к. его можно найти в kernel32).

Догада! Ну и догада! Это именно что системная строка. Из исходников FAR, свободно доступных в этих ваших интернетах:

static string FormatErrorString(bool Nt, DWORD Code)
{
LPWSTR lpBuffer=nullptr;
size_t size = FormatMessage((Nt ? FORMAT_MESSAGE_FROM_HMODULE : FORMAT_MESSAGE_FROM_SYSTEM) | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS, (Nt ? GetModuleHandle(L"ntdll.dll") : nullptr), Code, 0, (LPWSTR)(&lpBuffer), 0, nullptr);
string Result(lpBuffer, size);
LocalFree(lpBuffer);
RemoveUnprintableCharacters(Result);
return Result;
}

static string GetWin32ErrorString(DWORD LastWin32Error)
{
return FormatErrorString(false, LastWin32Error);
}

static string GetNtErrorString(NTSTATUS LastNtStatus)
{
return FormatErrorString(true, LastNtStatus);
}

string GetErrorString()
{
#ifdef USE_NT_MESSAGES
return GetNtErrorString(Global->CaughtStatus());
#else
return GetWin32ErrorString(Global->CaughtError());
#endif
}


Ну а FAR для всех своих сообщений об ошибке использует GetErrorString, при этом как Global->CaughtStatus(), так и Global->CaughtError() возвращают просто результат GetLastError(), в данном случае ERROR_DISK_FULL, что и соответсвует системному сообщению вантуза "There is not enough space on the disk". Про комнаты говорили досовские Norton Commander и Volkov Commander.
Linux Firefox
 Москва
0
3
Фыва Jr Олдж
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Да, кстати. Чему вас там в Израиле учат? Хотя да, справа-налево ведь, вот порядок слов и путаете вечно. "No space left on device" это не "Нет левого космоса на устройстве", это может быть на иврите/идише так, а на английском (и в переводе на русский) это "Не космос слева на устройстве". Только так и не иначе!
Linux Opera
 Москва
1
0
Mike Novikoff
Вот не пойму, зачем так извращаться: из линукса в линукс — по чужеродному виндовому протоколу? За 15 лет пользования линуксом ни разу не пытался этого делать, даже в голову не приходило. Есть же куча альтернатив, хотя бы простой советский FTP. Ну или SCP. Ну или NFS. Ну или мало ли что ещё, всякий там FISH в mc. Но Самбу-то зачем?
Windows Firefox
 Израиль
0
0
braintunic
> зачем так извращаться: из линукса в линукс — по чужеродному виндовому протоколу?

Возможное объяснение: имеющийся сервер - это не универсальный Linux сервер, а некий девайс-appliance (файл-сервер), который предоставляет очень ограниченный набор сервисов - давая доступ по CIFS, но не давая доступ по NFS, FTP, SCP (по какой-то причине).

Ну или другое объяснение - просто в данном случае целью и было исследование работы с CIFS (может быть, именно чтобы показать, как хреново оно работает) ;)
Windows Safari Chrome
 Москва
1
0
эхкк
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А между тем, почти ровно через неделю исполняется год как не апдейтился /blog
Будем праздновать!
Windows Firefox
 Санкт-Петербург
1
0
тупиточка
Будем!
Windows Safari Chrome
 Европа
1
0
тадамс
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Ну так че, как праздновать будем?
Windows Firefox
 Москва
0
0
Johny
вообще чаще всего правильный ответ на это - ограничение файловой системы на размер файла. например fat16.

всего комментариев: 20

<< предыдущая заметка следующая заметка >>