We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[1750479][E][AsyncTCP.cpp:797] _flushWriteQueue(): socket 50 lwip_write() failed errno=104 assert failed: xQueueSemaphoreTake queue.c:1545 (( pxQueue )) Backtrace: 0x40083d69:0x3ffdd880 0x4008eeb1:0x3ffdd8a0 0x400948b5:0x3ffdd8c0 0x4008fec1:0x3ffdd9f0 0x401b08fb:0x3ffdda30 0x401b0a5c:0x3ffdda50 0x401b0ba3:0x3ffdda80 0x401b0eb5:0x3ffddab0 0x401b0293:0x3ffddb10 #0 0x40083d69:0x3ffdd880 in panic_abort at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_system/panic.c:402 #1 0x4008eeb1:0x3ffdd8a0 in esp_system_abort at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_system/esp_system.c:128 #2 0x400948b5:0x3ffdd8c0 in __assert_func at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/newlib/assert.c:85 #3 0x4008fec1:0x3ffdd9f0 in xQueueSemaphoreTake at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/queue.c:1549 (discriminator 1) #4 0x401b08fb:0x3ffdda30 in std::_Deque_iterator<AsyncClient::queued_writebuf, AsyncClient::queued_writebuf&, AsyncClient::queued_writebuf*>::difference_type std::operator-<AsyncClient::queued_writebuf, AsyncClient::queued_writebuf&, AsyncClient::queued_writebuf*>(std::_Deque_iterator<AsyncClient::queued_writebuf, AsyncClient::queued_writebuf&, AsyncClient::queued_writebuf*> const&, std::_Deque_iterator<AsyncClient::queued_writebuf, AsyncClient::queued_writebuf&, AsyncClient::queued_writebuf*> const&) at c:\users\pc\.platformio\packages\toolchain-xtensa-esp32@8.4.0+2021r2-patch5\xtensa-esp32-elf\include\c++\8.4.0\bits/stl_deque.h:357 #5 0x401b0a5c:0x3ffdda50 in AsyncClient::_error(signed char) at lib/AsyncTCPSock/src/AsyncTCP.cpp:986 #6 0x401b0ba3:0x3ffdda80 in __gnu_cxx::new_allocator<AsyncClient::notify_writebuf>::deallocate(AsyncClient::notify_writebuf*, unsigned int) at c:\users\pc\.platformio\packages\toolchain-xtensa-esp32@8.4.0+2021r2-patch5\xtensa-esp32-elf\include\c++\8.4.0\ext/new_allocator.h:125 (inlined by) std::allocator_traits<std::allocator<AsyncClient::notify_writebuf> >::deallocate(std::allocator<AsyncClient::notify_writebuf>&, AsyncClient::notify_writebuf*, unsigned int) at c:\users\pc\.platformio\packages\toolchain-xtensa-esp32@8.4.0+2021r2-patch5\xtensa-esp32-elf\include\c++\8.4.0\bits/alloc_traits.h:462 (inlined by) std::_Deque_base<AsyncClient::notify_writebuf, std::allocator<AsyncClient::notify_writebuf> >::_M_deallocate_node(AsyncClient::notify_writebuf*) at c:\users\pc\.platformio\packages\toolchain-xtensa-esp32@8.4.0+2021r2-patch5\xtensa-esp32-elf\include\c++\8.4.0\bits/stl_deque.h:610 (inlined by) std::deque<AsyncClient::notify_writebuf, std::allocator<AsyncClient::notify_writebuf> >::_M_pop_front_aux() at c:\users\pc\.platformio\packages\toolchain-xtensa-esp32@8.4.0+2021r2-patch5\xtensa-esp32-elf\include\c++\8.4.0\bits/deque.tcc:568 (inlined by) std::deque<AsyncClient::notify_writebuf, std::allocator<AsyncClient::notify_writebuf> >::pop_front() at c:\users\pc\.platformio\packages\toolchain-xtensa-esp32@8.4.0+2021r2-patch5\xtensa-esp32-elf\include\c++\8.4.0\bits/stl_deque.h:1599 (inlined by) AsyncClient::_notifyWrittenBuffers(std::deque<AsyncClient::notify_writebuf, std::allocator<AsyncClient::notify_writebuf> >&, int) at lib/AsyncTCPSock/src/AsyncTCP.cpp:842 #7 0x401b0eb5:0x3ffddab0 in AsyncClient::_sockIsWriteable() at lib/AsyncTCPSock/src/AsyncTCP.cpp:728 #8 0x401b0293:0x3ffddb10 in _asynctcpsock_task(void*) at lib/AsyncTCPSock/src/AsyncTCP.cpp:138 ELF file SHA256: d0cb80949abd78a8 Rebooting...
Here is the relevant part in AsyncTCP.cpp
AsyncTCP.cpp
bool AsyncClient::_flushWriteQueue(void) { bool activity = false; if (_socket == -1) return false; for (auto it = _writeQueue.begin(); it != _writeQueue.end(); it++) { // Abort iteration if error found while writing a buffer if (it->write_errno != 0) break; // Skip over head buffers already fully written if (it->written >= it->length) continue; bool keep_writing = true; do { uint8_t * p = it->data + it->written; size_t n = it->length - it->written; errno = 0; ssize_t r; #if ASYNC_TCP_SSL_ENABLED if (_sslctx != NULL) { r = _sslctx->write(p, n); if (ASYNCTCP_TLS_CAN_RETRY(r)) { r = -1; errno = EAGAIN; } else if (ASYNCTCP_TLS_EOF(r)) { r = -1; errno = EPIPE; } else if (r < 0) { if (errno == 0) errno = EIO; } } else { #endif r = lwip_write(_socket, p, n); #if ASYNC_TCP_SSL_ENABLED } #endif if (r >= 0) { // Written some data into the socket it->written += r; _writeSpaceRemaining += r; activity = true; if (it->written >= it->length) { it->written_at = millis(); if (it->owned) ::free(it->data); it->data = NULL; } } else if (errno == EAGAIN || errno == EWOULDBLOCK) { // Socket is full, could not write anything keep_writing = false; } else { // A write error happened that should be reported it->write_errno = errno; keep_writing = false; log_e("socket %d lwip_write() failed errno=%d", _socket, it->write_errno); } } while (keep_writing && it->written < it->length); } return activity; }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Here is the relevant part in
AsyncTCP.cpp
The text was updated successfully, but these errors were encountered: