169 похожих чатов

Как говорится, и снова здравствуйте! :) Есть новая головоломка для

джедаев.

Есть FCGI скрипт, в который пользователь отправляет файл CSV, файл сохраняется на сервер, дальше я достаю из него данные (использую Text::CSV::Encoded), делаю с ними небольшие манипуляции, и записываю измененные данные в новый файл, который потом загружаю в MySQL (8 версия) с помощью LOAD DATA LOCAL INFILE.

Небольшие файлы размером 10-20К строк обрабатывались без вопросов, а вот при попытке загрузить 250К строк я в какой-то страшный ад попал на неделю. MySQL начал дублировать некоторые строки при импорте, хотя в исходном загружаемом файле (уже после обработки) количество строк было всегда правильным! И вот я открываю этот файл vim'ом, смотрю - в нем все отлично, 250К строк, смотрю в MySQL после загрузки - а там 290К стало, некоторые тупо продублировались. Но эту фигню я смог победить - начал загрузку в MySQL вызывать не из Perl скрипта, а стал вызывать mysql команду как системную, и из неё вызывал LOAD DATA INFILE (уже без LOCAL). И после этого всё стало работать правильно!

Но, обнаружился новый баг, который я никак не могу побороть. Скрипт начинает читать один файл, редактировать данные, записывает их в новый файл, но как только доходит до конца, эта операция начинает работать сначала. То есть, каждый файл, который у меня создается для загрузки в MySQL, создаётся два раза! Я прямо сижу в консоли, делаю ls -l, и вижу как он по новой начинает создаваться, а в скрипте ничего такого нет, никакого цикла, или чего-то, что бы явно могло мне делать эту фигню.

Может, есть какие-то догадки? Могу прислать код в студию.

2 ответов

21 просмотр

А ты имя файла перед открытием каждый раз новое делай и потом логи почитай

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта