pvvx
Активный участник сообщества
Пояснение по поводу ошибки 'malloc assert!' в имеющихся прошивках, связанной с заполнением Heap при множественных соединениях:
Это проблема последнего [ACK] в HTTP протоколе, зависящая от того, кто инициировал закрытие [FIN], известная как TIME_WAIT на 60 сек и занятого порта. Подробное описание тут http://www.serverframework.com/asyn...tions-for-protocols-and-scalable-servers.html.
Но у нас, ошибка связана с тем, что во включенный в прошивку вариант стека lwip не встроено ограничение по захвату памяти. Это не дописано и приводит к трагическому концу 'malloc assert!' и перезагрузке модуля. Т.е. проблема не в Lwip, а у тех кто его конфигурировал. В памяти, на 60 сек, после после инициации закрытия соединения на каждый espconn_disconnect(...) остается структура размером около 200+ байт...
В итоге пользоваться espconn_disconnect(...) не стоит. Пусть соединение закрывает клиентская сторона Перед открытием нового соединения проверяйте system_get_free_heap_size()...
Это проблема последнего [ACK] в HTTP протоколе, зависящая от того, кто инициировал закрытие [FIN], известная как TIME_WAIT на 60 сек и занятого порта. Подробное описание тут http://www.serverframework.com/asyn...tions-for-protocols-and-scalable-servers.html.
Но у нас, ошибка связана с тем, что во включенный в прошивку вариант стека lwip не встроено ограничение по захвату памяти. Это не дописано и приводит к трагическому концу 'malloc assert!' и перезагрузке модуля. Т.е. проблема не в Lwip, а у тех кто его конфигурировал. В памяти, на 60 сек, после после инициации закрытия соединения на каждый espconn_disconnect(...) остается структура размером около 200+ байт...
В итоге пользоваться espconn_disconnect(...) не стоит. Пусть соединение закрывает клиентская сторона Перед открытием нового соединения проверяйте system_get_free_heap_size()...
Последнее редактирование: