Skip to content

Comments

Remove usernames from metric labels#4

Merged
sysvinit merged 1 commit intowireappfrom
sysvinit/allocation-usernames
May 31, 2022
Merged

Remove usernames from metric labels#4
sysvinit merged 1 commit intowireappfrom
sysvinit/allocation-usernames

Conversation

@sysvinit
Copy link

Old metrics labels are never garbage collected, which means that authentication schemes which use ephemeral usernames (such as the TURN REST API and the similar zrest scheme) will cause memory leaks due to the generation of new labels for every new username.

This change removes the username labeling on metrics entirely. See also issue 666 in upstream.

For authentication schemes using ephemeral usernames, this causes memory leaks,
as old metrics are never garbage collected.
@sysvinit sysvinit requested a review from supersven May 31, 2022 09:15
Copy link
Collaborator

@supersven supersven left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@sysvinit sysvinit merged commit c180c82 into wireapp May 31, 2022
@sysvinit sysvinit deleted the sysvinit/allocation-usernames branch May 31, 2022 10:20
sysvinit pushed a commit that referenced this pull request Nov 8, 2022
```
==6418==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x4e7530 in bcmp /src/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:906:10
    #1 0x55463d in stun_check_message_integrity_by_key_str coturn/src/client/ns_turn_msg.c:1989:5
    #2 0x554acc in stun_check_message_integrity_str coturn/src/client/ns_turn_msg.c:2008:9
    #3 0x5358c0 in LLVMFuzzerTestOneInput coturn/fuzz/FuzzStun.c:37:5
    #4 0x43ede3 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
    #5 0x42a542 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:324:6
    #6 0x42fdec in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:860:9
    #7 0x459322 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f4cb21790b2 in __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/libc-start.c:308:16
    #9 0x42070d in _start
  Uninitialized value was created by an allocation of 'new_hmac' in the stack frame of function 'stun_check_message_integrity_by_key_str'
    #0 0x5538c0 in stun_check_message_integrity_by_key_str coturn/src/client/ns_turn_msg.c:1927
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants