@spbpython

Страница 522 из 785
Andrey
28.09.2017
13:20:44
гит
вот кстати интересная идея, локальными коммитами спамить

Dmitry
28.09.2017
13:20:54
каждый раз создавать снэпшот? может лучше реально какую-то систему контроля версий

Ilya
28.09.2017
13:25:09
Когда все пришли в тарабуч

Chikiro
28.09.2017
13:26:53
Короче, получается, если очень надо откатывать состояние, то придется какого-то франкенштейна создавать. Так-то мне не надо такое внедрять, просто интересно было какие есть решения. А то из-за упавших заданий в rq остаются ненужные артефакты - мой внутренний перфекционист негодует!

Google
Andrey
28.09.2017
13:29:24
нельзя записывать созданные артефакты в какой-то "лог" и при фейле "транзакции" удалять их?

nik
28.09.2017
13:31:41
зачем изобретать велосипед

Svyatoslav
28.09.2017
13:33:44
Кто-нибудь сталкивался с тиранией mkl_intel_thread.dll???

Chikiro
28.09.2017
13:34:04
какие именно артефакты?
Новые файлы, новые директрии, новые записи в бд.

Roman
28.09.2017
13:36:57
Chikiro
28.09.2017
13:38:50
это временные файлы?
Нет, но можно сделать, чтобы были временные, и переименовывать в самом конце задачи.

L'Alchimiste
28.09.2017
13:39:32
так генери в отдельной папке и по результату копируй

если слетело - грохай папку и всё

Roman
28.09.2017
13:40:06
вообще, никогда не пишите файлы туда, где они должны оказаться, особенно если качаете что-то из инета.

или просто по сети передаете.

Google
Roman
28.09.2017
13:41:23
сначала во временный, потом os.rename, благо он атомарен и ничего не стоит

Chikiro
28.09.2017
13:41:46
это самый правильный путь
я уже поняла, когда нашла в хранилище файлы нулевого размера ?

Roman
28.09.2017
13:42:22
я уже поняла, когда нашла в хранилище файлы нулевого размера ?
угу. еще можно такое получить целой пачкой разных способов. например, все было хорошо и тут пропало питание.

некоторые фс зануляют такие полузаписанные файлы

Andrey
28.09.2017
13:43:18
все было хорошо, пока не появился %username%

Roman
28.09.2017
13:44:34
правда, в моем случае было чуть иначе: у меня была ошибка при выкачивании файла в несколько соединений и проявлялось оно относительно редко. а вот когда я стал параноить и вообще всегда проверять хеши(даже когда файл с диска беру) - удалось такой баг найти.

но восстанавливаться из таких полузаписанных состояний - боль

Chikiro
28.09.2017
13:51:31
некоторые фс зануляют такие полузаписанные файлы
Кстати, ищу нормальный тьюториал по фс. Или только хардкор, только чтение документации к ним?

Andrey
28.09.2017
13:55:59
https://github.com/torvalds/linux/tree/master/fs

Dmitry
28.09.2017
14:03:26
Тутор != сорсы

Andrey
28.09.2017
14:04:58
согласен

Sergey
28.09.2017
14:05:42
там рядом еще документация лежит https://github.com/torvalds/linux/blob/master/Documentation/filesystems/00-INDEX

Chikiro
28.09.2017
14:12:19
Roman
28.09.2017
14:32:09
Кстати, ищу нормальный тьюториал по фс. Или только хардкор, только чтение документации к ним?
по какой именно фс? можно просто почитать маны на всякие вызовы в vfs: stat, fstat, read/readv/preadv, readahead, posix_fadvise, madvise(внезапно, да!)

Chikiro
28.09.2017
14:59:05
по какой именно фс? можно просто почитать маны на всякие вызовы в vfs: stat, fstat, read/readv/preadv, readahead, posix_fadvise, madvise(внезапно, да!)
Что-то обзорное, чтобы идеи понять, для решения каких задач фс создавали. Маны плохо запоминаются, если нет реальной задачи :-/ А мне для общего развития надо, чтобы лучше понимать, что вообще в системе происходит.

Maxim
28.09.2017
15:00:16
была какая-то вводная книга по линуксу от русского автора, там все такое описывалось, а в конце даже писали модуль ядра. старая, правда :)

Dmitry
28.09.2017
15:02:37
http://www.nersc.gov/assets/Uploads/05-Filesystem-best-practices-short.pdf

Sergey
28.09.2017
15:03:22
была какая-то вводная книга по линуксу от русского автора, там все такое описывалось, а в конце даже писали модуль ядра. старая, правда :)
К слову о модулях ядра, на степике недавно была бета курса по программированию модулей. Пока прикрыли, фидбек собрали, но скоро должен быть релизный запуск ?

Dmitry
28.09.2017
15:03:25
но вообще лучше конечно вчитываться в особенности и для себя решать когда и что юзать и внимание уделять тому, зачем вообще начали разработку (сами разрабы фс)

Google
Andrey
28.09.2017
15:04:10
всегда мечтал купить linux

Dmitry
28.09.2017
15:04:48
не, в пдфке ерунда, кроме всяких тонкостей "юзайте это вместо вот этого"

но это и в гите по фс найти можно, так что не в счет

вообще насколько имеет смысл питоноразрабу об этом задумываться? если только он не какую-то нативщину пробрасывает

Andrey
28.09.2017
15:07:31
как только начал писать в файлы уже полезно понимать, что там вообще происходит

Chikiro
28.09.2017
15:17:41
как только начал писать в файлы уже полезно понимать, что там вообще происходит
Заметила, что при сохранении файла забывают про буферизацию, потом появляются удивительные баги, которые не всегда воспроизводятся.

Andrey
28.09.2017
15:20:22
это какие например?

Chikiro
28.09.2017
15:24:14
Сохранили файл, передали его путь другой функции, которая еще раз считала файл и увидела, что он невалидный, выдала ошибку.

Вроде, еще размер файла может быть неправильный, если средствами операционки его запросить.

Andrey
28.09.2017
15:26:05
так а по факту что с файлом было? он недозаписался? не так прочитался?

Chikiro
28.09.2017
15:27:56
так а по факту что с файлом было? он недозаписался? не так прочитался?
Недозаписался на момент, когда его считывали. Когда смотришь ошибку в логах и пытаешься воспроизвести баг, все ок, не воспроизводится.

Dmitry
28.09.2017
15:29:13
Да я чуть ниже уже это написал.

Chikiro
28.09.2017
15:43:58
единственный баг с буферизацией, что можно словить - это когда после записи мы не сделали close.
Помогло os.fsync, вот я как раз не очень хорошо в работе с файлами и файловыми системами разбираюсь, буду курить маны :)

Roman
28.09.2017
15:44:39
Помогло os.fsync, вот я как раз не очень хорошо в работе с файлами и файловыми системами разбираюсь, буду курить маны :)
не надо так. fsync нужен только если тебе важно, что данные легли на физический носитель.

Chikiro
28.09.2017
15:49:35
Google
Robert
28.09.2017
16:09:08
Здравствуйте. Подскажите, что может быть не так в шаблоне jinja 2?

server { listen 80; {{ssl}} charset {{vhost.charset}}; root /home/u{{vhost.userid}}/web/{{vhost.mainname}}; index {{vhost.index}}; {% if aliases is defined %} server_name {{vhost.mainname}} www.{{vhost.mainname}} {{aliases}}; {% else %} server_name {{vhost.mainname}} www.{{vhost.mainname}}; {% endif %} {% if errorpages.len() >0 %} {% for page in errorpages %} error_page {{page.type}} {{page.url}} {% endfor % } {% endif %} {% if redirects.len() >0 %} {% for item in redirects %} location = {{item.from}} { return {{item.type} {{item.to}} } {% endfor % } {% endif%} location / { try_files \$uri \$uri/ /{{index}} } location ~ /\.ht { deny all; } {% if mode=='nginx %} location ~ \.php$ { try_files \$uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php{{php}}-{{siteuser}}; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; include fastcgi_params; } {% elif mode=='apache' %} location ~ \.php$ { proxy_set_header X-Real-IP \$remote_addr; proxy_set_header X-Forwarded-For \$remote_addr; proxy_set_header Host \$host; proxy_pass http://127.0.0.1:81; } location ~ /\.ht { deny all; } {% endif %} }

https://ideone.com/4W34rm

Roman
28.09.2017
16:11:53
А что, если после сохранения файла, вызвается os.stat?
после сохранения или после закрытия? )

Robert
28.09.2017
16:12:37
А именно - где-то у меня не за

Chikiro
28.09.2017
16:14:09
после сохранения или после закрытия? )
После закрытия :) Может какой-то race condition случиться у файловой системы? Не успела записать и считала размер файла меньше, чем есть?

Dmitry
28.09.2017
16:17:03


Admin
ERROR: S client not available

Dmitry
28.09.2017
16:17:36
Спасибо Коле :)

b0g3r
28.09.2017
16:17:49
уууу

Dmitry
28.09.2017
16:18:27
круто)

Makc
28.09.2017
16:18:54
У тебя ж даже пастбин подсветил

b0g3r
28.09.2017
16:19:02
'nginx %}
там ещё пробелы после % и иногда не хватает ещё парочки фигурных скобок

Valentin
28.09.2017
16:42:43


Sergey
28.09.2017
16:42:55


b0g3r
28.09.2017
16:46:46
Это стикеры? Или комикс?

Chikiro
28.09.2017
16:47:39
единственный баг с буферизацией, что можно словить - это когда после записи мы не сделали close.
я ошиблась, во flask-е надо самостоятельно close вызывать, если при сохранении файла из запроса передан не путь, а объект.

Так что не было close, и из-за этого плавающий баг :-/

Google
Dmitry
28.09.2017
16:53:32
Danil
28.09.2017
17:02:43




Dmitry
28.09.2017
17:03:15
?

Dmitry
28.09.2017
17:06:34
красавцы

Dmitry
28.09.2017
17:58:41
Тут между делом на улице спасли чувака. Вызвали скорую ему.

Sergey
28.09.2017
18:01:20
кажется людей стало больше

Dmitry
28.09.2017
18:04:56
Danil
28.09.2017
18:08:36
быстро ответили? быстро приехала?
Но он обдалбанный был, пульс ровный, поверхностное дыхание, расширенные зрачки. Но больше повеселил чел, который орал

Dmitry
28.09.2017
18:10:32
из этого надо сделать лозунг

"spbpython спасает жизни. Приходи к нам пить"

Sergey
28.09.2017
18:16:00
"spbpython спасает жизни. Приходи к нам пить"
Не знаю насчёт spbpython, но по крайней мере мы смогли связать этих чуваков и beerjs :D

Dmitry
28.09.2017
18:17:38
каких? о_0 умирающих?

Sergey
28.09.2017
18:59:41
Ага

Dmitry
28.09.2017
19:57:33
Мы в Punk Brew внутри

Serge
28.09.2017
21:11:03
простите коллеги, не смог сегодня

Dmitry
28.09.2017
21:11:40
same. работа

Страница 522 из 785