воскресенье, 13 мая 2012 г.

StrongDC++ sqlite r9957

SetupStrongDC-sqlite-x64-r9957.exe
SetupStrongDC-sqlite-x86-r9957.exe

* Обновлено стартовое лого (с) Activator
* [merge] Исправлено падения в MerkleTree::MerkleTree (http://code.google.com/p/flylinkdc/issues/detail?id=751)
* [merge] Перенес функцию флая отсылки мини-дампов на сервер разработки для анализа падений (часть 1)


 









* Исправлено падение под wine в KeyboardProc (WinUtil::tabCtrl бывает пустой)
* Обновлены библиотеки
- wtl
- miniupnp
- SQLite
- mediainfo
- zlib
* Обновление базы данных провайдеров
   Сборка на базе 20120506-r1168, создана 06.05.2012 01:07 +0600
   Итого в базе:
    - Провайдеров - 1369
    - Провайдерских лого - 1388
    - Диапазонов адресов - 5665
   Archive CustomLocations.rar created by LazyBadger 

strongdc-243-sqlite-debug-info-r9957-2012.05.13-06.42.38.7z
strongdc-243-sqlite-x64-r9957-2012.05.13-06.42.21.7z
strongdc-243-sqlite-x86-r9957-2012.05.13-06.36.39.7z
strongdc-243-sqlite-src-r9957-2012.05.13-06.35.54.7z

24 комментария:

Анонимный комментирует...

lol, мозг совсем не включают ))
это я про мадоку и r9943.

страусиное решение - если что-то пошло не так, как планировалось - давайте это просто заигнорим, лишь бы не упало ))

в результате весь флай покрыт костылями типа
if (somePtr == NULL) return;
// БЛЯДЬ, КАКОГО ХУЯ? ТУТ null БЫТЬ НИКАК НЕ МОЖЕТ ПО ЛОГИКЕ КОДА

а если случайно будет не null, а другой мусор, 0xDEADBEEF например?

что в результате? креши превращаются в глюки: то не работает, сё не работает, зато не падает. дампа нет? -свободен

фух, ладно.
если посмотреть на исправление чуть со стороны, сразу видно несовпадение длины пришедшего буфера и ожидаемой длины. блять, ну можно же просто длину скорректировать перед for:
n=min(n, p_BlockSize/Hasher::BYTES);

нет, 8 строк гавнокода, проверяющего перед каждым чтением из указателя, что указатель валидный и куча строк для обвески этой говнопроверки.

кстати, грей без вопросов скачал этот файл у юзера Dolda2000. ищите ошибку ))

Pavel Pimenov комментирует...

греем я тот файл не качал...
сейчас проверю.
взял оригинальный стронг 2.42 - он не смог это сделать.
прекратил исследования и заткнул попытку выхода за границу массива.
про оптимизацию понял - поправлю.
а откуда столько желчи?
если вы хороший программер - пришлите свои патчи - это будет корректнее, чем анонимно обосрать код в блоге.
А вот замечания к коммитам лучше писать в гуглкод.
это поможет начинающим программистам следящим за разработкой научится писать программы лучше в будущем.

Анонимный комментирует...

хехе, я понял где ваша ошибка :P

Pavel Pimenov комментирует...

и где?

Анонимный комментирует...

файл неоднозначно декомпозируется на TTH-дерево (можно играться глубиной дерева и соответственно, кол-вом листьев).

если внимательно посмотреть, протокол налагает только одно ограничение: кол-во листьев не более 2^16 (в $PSR под номер листа отведено 2 байта)

когда к вам приходит дерево, вместо того, чтобы жрать что дают, вы пытаетесь переделать дерево, как вам удобно (в частности, вычислить кол-во уровней) по своей прихоти

то есть, если какой-то линксойд забацает реализацию хешера, не подглядывая в исходники Strong, то вы с него качать не сможете

в данном конкретном случае, немного изменились алгоритмы где-то между Strong 2.04 и 2.41

возьмите старый Strong (а лучше классику - PWDC 0.41) и увидите разницу между генерируемыми деревьями на некоторых файлах

Pavel Pimenov комментирует...

У Dolda2000 клиент такой:
<++ V:0.674,M:A,H:6/0/0,S:6>
можете скинуть скрин где этот файл успешно скачан с него в грее?

Анонимный комментирует...

Pavel, в гулкод не пишу потому что там анонимно нельзя

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

кстати, предложенное мной решение тоже не оптимально и даже содержит опечатку ;-[ (не подумайте, что нарочно)

лучше будет

if (p_DataSize < n*Hasher::BYTES) return; // один фиг дерево уже битое, пытаться здесь что-то исправить бесполезно

Анонимный комментирует...

попробую залить на народ...

Анонимный комментирует...

так-к, на народ оказывается теперь пускают только по паспорту (нужен яндекс-паспорт). пришлось заливать на другой, анонимный но медленный обменник. поэтому так долго...

http://dump.ru/file/5727026

идея расшарить в PWDC не проканала - флай качает с него. тем не менее, грей качает и того юзера, файл не битый, TTH совпадает. не знаю даже, что ещё можно посоветовать

Анонимный комментирует...

>> а откуда столько желчи?

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

тот же конструктор MerkleTree - вызывающий код обязан узнать, что дерево некорректно, и принять соотв меры, а не ждать несовпадения TTH, когда уже место в очереди получено и полфайла скачалось

хорошего могу сказать, что интерфейс программы классно развивается: стиль, цвета, иконки - всё современно

Анонимный комментирует...

>> можете скинуть скрин где этот файл успешно скачан с него в грее?

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

http://postimage.org/image/n86jtpevv/

Анонимный комментирует...

Все проблемы из-за того, что тащите куски кода со стронга, а потом найти несостыковки не можете. Уже давно пора отделиться от них и писать всё самим.
Насчет кода, в некоторых местах он ужасен, явно сделан на скорую руку. К примеру в хорошем приложении интерфейс не должен зависать ни при каких обстоятельствах. В флае как минимум 3 места, на которых он подвисает.

Pavel Pimenov комментирует...

Знаю, что код флая не идеален.
после работы трачу 1-2 часа на анализ присланных дампов падения.
с помощью коллектора минидампов удалось локализовать места частых крэшей.

бета-10 прислала 25 дампов за сутки
бета-26 всего 12 (хотя может это от флая отказалось много народу :)

p.s.
Покупаю патчи на эти три места подвисания флая.
пишите в личку ценник.

NightOrion комментирует...

Может к нам в команду ?

Анонимный комментирует...

[abc777]

про шапочку... - а, для большей эффективности советую к ней заземление подводить !
:>


Покупаю патчи на эти три места подвисания флая.
пишите в личку ценник.

- Какие барские привычки...
анон, пиши не стеснясь, хотя бы по штуке(уе) за штуку :) Тем более речь про патчи(тут сам баг обычно локализовать...). деваться им некуда - тут такие завалы, а флаетроян и вирусы распространять то надо...

Анонимный комментирует...

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

Анонимный комментирует...

[abc777]
это про б.что ли ?
такое ли уж хорошее...
PS:
Идите в ж. - со своими б.

Анонимный комментирует...

[abc777]

+
анон>>ребята, так код писать нельзя.
анон>>...дебажьте, а не подавляейте баги, лишь бы наружу не лезли
- Кто же тогда будет дампы с паролями DC [и ОС/емайт и тд], а также списками шары с скачками (и возможно, технически ничто не препятствует, списками всех файлов на винте). И не нужно думать что VirtulaBox/QEMU тут что то изменит...
Ну, вот кто будет слать ?!

Mikhail комментирует...

печально это... когда разработчик опен-сорс проекта "покупает патчи", значит у него никакой программистской заинтересованности в проекте нет, одна лишь коммерция на уме (купил патч за столько, доход от яндекса-бара повысился на столько)

Анонимный комментирует...

[abc777]

Mikhail, в сравнении с указанным: хрен там с "программистской заинтересованностью в проекте" - всё в жизни надоедает и "семерых детей кормить надо"(R)...

Анонимный комментирует...

Mikhail, наоборот это шаг в правильнм направлении!
Павел, чтож у вас всё так сопливо и вяло?
На решение этой проблемы нужно потратить от силы пару часов. Вот же висит готовый бизнесплан: http://flylinkdc.com/forum/viewtopic.php?f=26&t=762
Немного пошевелить мозгами, руками, собрать и организовать вашу аморфную команду и скорость разработки флая увеличится с улиточной до суперскоростной.

Анонимный комментирует...

[abc777]

NiRamz, со своими б. - идите в ж.

Анонимный комментирует...

abc777, со своим маразмом, идите в ж.

NightOrion комментирует...

какие все вежливые....