Comments (13)
Yes, but not as bad. Maybe around 1MB per ~8 hours. You can actually see it if you install collectd and have it monitor dawn.
My mobile clients are smart enough and can roam easily between APs without dawn. So I think I'll keep it off for now.
from dawn.
Could u please try multicast or broadcast option in network settings?
Just set here 0, or 1
https://github.com/PolynomialDivision/packages/blob/master/net/dawn/files/dawn.config#L5
Currently I'm testing patches regarding TCP socket.
Edit:
You also have to adjust this https://github.com/PolynomialDivision/packages/blob/master/net/dawn/files/dawn.config#L2 to your local broadcast address.
from dawn.
That did not help. I'm still seeing a steady increase:
from dawn.
That did not help. I'm still seeing a steady increase:
Thanks for trying! Would be interesting what is the difference between those APs.
from dawn.
Well, now I see all other APs showing different rates of memory growth. I stopped & disabled it on all APs...as I'm hunting for another rare issue that's randomly rebooting my main AP after 7-10 days and I'm not sure what's causing it.
from dawn.
Maybe it is wrong usage of blob buffers... :/
from dawn.
I think I'm seeing as bit of memory leakage as well in my small network I haven't started debugging it yet though.
from dawn.
to find memory leak, build with gcc -ggdb -fsanitize=address -fno-omit-frame-pointer.
from dawn.
-fsanitize=address didn't compile for the platform of my routers (not supported on that platform by GCC if I understood the message correctly). -fsanitize=leak builds OK but I don't think it is linking in the ASAN libraries, and they aren't available if I add -lasan. I found an option in OpenWRT menuconfig that enables ASAN, so am recompiling my toolchain to see if it all comes together.
from dawn.
There were random memory allocations by the tcpsocket. Should be fixed with latest master.
If u have x86 board you can copy the unstriped binaries from build_dir
, so libc.so
and dawn
and place them under /tmp
.
You then can use valgrind to test for memory leakage.
valgrind /tmp/libc.so /tmp/dawn
Edit:
Please compile dawn without memory auditing. You can find the define in memory_utils.h
.
You can test memory leakage detection with
valgrind --leak-check=full test_storage memleak
from dawn.
==3024==
==3024== HEAP SUMMARY:
==3024== in use at exit: 45,592 bytes in 106 blocks
==3024== total heap usage: 116,586 allocs, 116,480 frees, 34,175,458 bytes allocated
==3024==
==3024== 272 bytes in 1 blocks are possibly lost in loss record 7 of 28
==3024== at 0x480B5FC: calloc (vg_replace_malloc.c:762)
==3024== by 0x40B022: server_cb (in /tmp/dawn)
==3024== by 0x4C1AFAF: uloop_run_events (uloop.c:198)
==3024== by 0x4C1AFAF: uloop_run_timeout (uloop.c:555)
==3024== by 0x40863C: dawn_init_ubus (in /tmp/dawn)
==3024== by 0x40312A: main (in /tmp/dawn)
==3024==
==3024== 4,129 bytes in 1 blocks are possibly lost in loss record 25 of 28
==3024== at 0x480967E: malloc (vg_replace_malloc.c:309)
==3024== by 0x4C1B9F8: ustream_alloc_default (ustream.c:67)
==3024== by 0x4C1B94B: ustream_prepare_buf (ustream.c:279)
==3024== by 0x4C1B94B: ustream_prepare_buf (ustream.c:250)
==3024== by 0x4C1BC72: ustream_reserve (ustream.c:290)
==3024== by 0x4C1C272: ustream_fd_read_pending (ustream-fd.c:56)
==3024== by 0x4C1C272: __ustream_fd_poll (ustream-fd.c:122)
==3024== by 0x4C1AFAF: uloop_run_events (uloop.c:198)
==3024== by 0x4C1AFAF: uloop_run_timeout (uloop.c:555)
==3024== by 0x40863C: dawn_init_ubus (in /tmp/dawn)
==3024== by 0x40312A: main (in /tmp/dawn)
==3024==
==3024== 4,401 (272 direct, 4,129 indirect) bytes in 1 blocks are definitely lost in loss record 27 of 28
==3024== at 0x480B5FC: calloc (vg_replace_malloc.c:762)
==3024== by 0x40B022: server_cb (in /tmp/dawn)
==3024== by 0x4C1AFAF: uloop_run_events (uloop.c:198)
==3024== by 0x4C1AFAF: uloop_run_timeout (uloop.c:555)
==3024== by 0x40863C: dawn_init_ubus (in /tmp/dawn)
==3024== by 0x40312A: main (in /tmp/dawn)
==3024==
==3024== LEAK SUMMARY:
==3024== definitely lost: 272 bytes in 1 blocks
==3024== indirectly lost: 4,129 bytes in 1 blocks
==3024== possibly lost: 4,401 bytes in 2 blocks
==3024== still reachable: 36,790 bytes in 102 blocks
==3024== suppressed: 0 bytes in 0 blocks
==3024== Reachable blocks (those to which a pointer was found) are not shown.
==3024== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==3024==
==3024== Use --track-origins=yes to see where uninitialised values come from
==3024== For lists of detected and suppressed errors, rerun with: -s
==3024== ERROR SUMMARY: 2778 errors from 11 contexts (suppressed: 8755 from 10)
from dawn.
@jonozzz Is this issue still present?
from dawn.
Please test latest master. Feel free to reopen again.
from dawn.
Related Issues (20)
- dawn package unavailable in latest snapshots HOT 1
- dawn: Failed to lookup ID!
- How to configure openwrt as a client to support 802.11kvr HOT 1
- [bug] A UAF bug in src/storage/datastorage.c
- How to configure DAWN to kick "legacy" devices? HOT 2
- Make "server_ip" into a list of IPs to contact
- [broadcast mode] UDP packets exceed MTU HOT 1
- [multicast mode] Allow binding to a specific IP instead of wildcard HOT 3
- [broadcast mode] Symmetric encryption is broken HOT 2
- eval_<type>_req and MacOS behaviour (and other OS), improvement and bugfixes HOT 1
- Is there any way to make DAWN prefer 5GHz network. HOT 1
- [Question] Why do the OpenWRT guides mention wnm_sleep_mode?
- [Bug?] rrm_mode other than "t" causes network delay spikes on multiple devices HOT 2
- [Bug?] bandwidth_threshold in config is supposedly megabits but compared to kilobits from hostapd
- Solved: DAWN fail on multiple SSID with different subnet IP HOT 1
- infrequent SIGSEGV on OpenWrt 22.03.5, r20134-5f15225c1e, mipsel_24kc HOT 2
- DAWN kicks clients with good bitrates HOT 1
- [Info] Updates to luci-app-dawn in progress HOT 15
- DAWN stopped working after upgrading Openwrt to 23.05 HOT 1
- "wnm_disassoc_imminent" is dropped in OpenWrt 23.05.0 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dawn.