Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RE: библиотекa распределенного общения, вопросы, предложения и обсуждение 
:(
    Опции темы
mes
Дата 22.3.2011, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(mes @  22.3.2011,  00:51 Найти цитируемый пост)
нужно переработать карту

что-то типо этого :
http://liveworkspace.org/code/fd52a7513dec...3dcde4a17770fb2

с подправлениями :
http://liveworkspace.org/code/ef6af8435e3c...b47dcebe05e8fbe


Это сообщение отредактировал(а) mes - 22.3.2011, 12:15


--------------------
PM MAIL WWW   Вверх
mes
Дата 22.3.2011, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



теперь надо попробовать отделить карту от объекта реализации... 



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 22.3.2011, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



smile 
mes, а я уже два дня бьюсь над багом. только что понял в чем проблема. наверное баг в asio, или в TCP стеке.
в общем, в один прекрасный момент, контекст пользователя на сервере, читает из сети такое:
Цитата

22 serialization::archive 9 0 0 8 servimpl 2 m1 32 22 serialization::archiveX22 seria

а отправляется именно такое:
Цитата

22 serialization::archive 9 0 0 8 servimpl 2 m1 32 22 serialization::archive 9 347

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

кстати, если между отправками с клиента вставить sleep на 1 мс - то ошибка пропадает.

Добавлено через 5 минут и 12 секунд
еще странно то, что это происходит в 95% случаев на 347 итерации smile 

Это сообщение отредактировал(а) boostcoder - 22.3.2011, 18:18
PM WWW   Вверх
bsa
Дата 22.3.2011, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Очень похоже на повторное использование буфера до того, как была завершена работа с ним из другой задачи.
PM   Вверх
boostcoder
Дата 22.3.2011, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



bsa, это исключено, т.к. буфер - локальная переменная функции. и кроме этой функции, никто не знает о существовании этой переменной.
мьютекс есть. лочит все тело.

PM WWW   Вверх
bsa
Дата 22.3.2011, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



boostcoder, я про буфер используемый в сетевых операциях asio.
PM   Вверх
boostcoder
Дата 22.3.2011, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



упс... нагадили в тему mes`а.
попрошу модераторов почистить.
PM WWW   Вверх
mes
Дата 22.3.2011, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  22.3.2011,  18:19 Найти цитируемый пост)
упс..

зато хоть не так скучно.. а то почти один тут всегда smile
все почему то стесняются заходить  smile 


Цитата(boostcoder @  22.3.2011,  17:17 Найти цитируемый пост)
 в один прекрасный момент, контекст пользователя на сервере

я так понимаю расчитываете на телепатов  smile  smile 

Цитата(mes @  22.3.2011,  16:50 Найти цитируемый пост)
теперь надо попробовать отделить карту от объекта реализации... 

пока так :
http://liveworkspace.org/code/57537e099697...96f3fd9f6782d15


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 22.3.2011, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  22.3.2011,  19:32 Найти цитируемый пост)
я так понимаю расчитываете на телепатов

та нет. просто в коде проблем нет. это какое-то неведомое мне поведение TCP стека. dcpdump доказал, что данные искажены по пути. буду тему создавать...
PM WWW   Вверх
mes
Дата 22.3.2011, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  22.3.2011,  17:17 Найти цитируемый пост)
наверное баг в asio, или в TCP стеке

как то сильно сомнительно..вероятнее неправильное использование..

Добавлено через 1 минуту и 30 секунд
Цитата(boostcoder @  22.3.2011,  18:35 Найти цитируемый пост)
 просто в коде проблем нет. это какое-то неведомое мне поведение TCP стека

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


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 22.3.2011, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  22.3.2011,  19:35 Найти цитируемый пост)
вероятнее неправильное использование..

я использую только API`шки asio. как их модно неправильно юзать, чтоб получить баг именно на 347 итерации.

зы
модераторов попросил почистить тему от этого поста: http://forum.vingrad.ru/index.php?showtopi...t&p=2317887

Добавлено @ 19:42
Цитата(mes @  22.3.2011,  19:35 Найти цитируемый пост)
а имеется минимальный проект восоздающий проблему ?

к сожалению нет :( пока нет..

Добавлено @ 19:45
Цитата(mes @  22.3.2011,  19:35 Найти цитируемый пост)
а имеется минимальный проект восоздающий проблему ?

в коде точно нет ошибок. все просто:
1. выделение памяти у ОС в shared_array
2. сериализация.
3. копирование в shared_array.
4. boost::asio::async_write()
5. tcpdump показывает что данные ушли.
6. на приеме данные искажены.

sleep() между отправками минимум в 1мс полностью решает проблему.


зы
тему создаю.

Добавлено через 5 минут и 49 секунд
Цитата(boostcoder @  22.3.2011,  19:41 Найти цитируемый пост)
баг именно на 347 итерации.

соврал. 347 - последняя итерация которая проходит благополучно. 348 - завал.

Добавлено через 6 минут и 31 секунду
Цитата(boostcoder @  22.3.2011,  19:41 Найти цитируемый пост)
5. tcpdump показывает что данные ушли.

т.е. проблема даже не в asio.


Это сообщение отредактировал(а) boostcoder - 22.3.2011, 19:46
PM WWW   Вверх
mes
Дата 22.3.2011, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  22.3.2011,  18:35 Найти цитируемый пост)
это какое-то неведомое мне поведение TCP стека. dcpdump доказал, что данные искажены по пути.

как же тогда другие сетевые программы работают ? взять хотя бы тот же браузер... 
плюс искажены оно уж больно странно: "наступили на хвост".. 

Цитата(boostcoder @  22.3.2011,  18:41 Найти цитируемый пост)
Цитата

tcpdump показывает что данные ушли.

т.е. проблема даже не в asio.

так может давятся данные не при отсылке, а при приеме..

Добавлено через 57 секунд
Цитата(mes @  22.3.2011,  18:32 Найти цитируемый пост)
Цитата

теперь надо попробовать отделить карту от объекта реализации... 

пока так :
http://liveworkspace.org/code/57537e099697...96f3fd9f6782d15 

чуть чуть подправлено :
http://liveworkspace.org/code/8636c3b991de...23ecccde4f233a8


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 22.3.2011, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  22.3.2011,  20:58 Найти цитируемый пост)
так может давятся данные не при отсылке, а при приеме..

не знаю. но думаю это не важно, т.к. tcpdump читает не при помощи моего кода, и показывает несоответствие.

Цитата(mes @  22.3.2011,  20:58 Найти цитируемый пост)
как же тогда другие сетевые программы работают ? взять хотя бы тот же браузер... 

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

Добавлено через 1 минуту и 3 секунды
зы
не могу тему создать, потому что на скрине нужно кое-что написать и указать стрелочки. а я институт по рисования не закончил. ибо сходу не понял как это сделать в GIMP smile 
PM WWW   Вверх
boostcoder
Дата 23.3.2011, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



mes, а у Вас случаем нет предположения о том, почему валится на 348`ой итерации, и почему sleep() решает проблему?
отсылаю это:
Цитата

22 serialization::archive 9 0 0 8 servimpl 2 m1 32 22 serialization::archive 9 347
22 serialization::archive 9 0 0 8 servimpl 2 m1 32 22 serialization::archive 9 348


PM WWW   Вверх
mes
Дата 23.3.2011, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



а если увеличить размер сериализуемой структуры, индекс сбойной итерации изменится ?

Добавлено через 1 минуту и 4 секунды
Цитата(boostcoder @  22.3.2011,  21:58 Найти цитируемый пост)
 ибо сходу не понял как это сделать в GIMP

инструмент кисточка на панели инструментов и дальше от руки мышкой выводите стрелочки smile



--------------------
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0958 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.