1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00
Commit graph

122 commits

Author SHA1 Message Date
Winlin
41b3623296 API: Support new HTTP API for VALGRIND. v6.0.149 (#4150)
New features for valgrind:

1. ST: Support /api/v1/valgrind for leaking check.
2. ST: Support /api/v1/valgrind?check=full|added|changed|new|quick

To use Valgrind to detect memory leaks in SRS, even though Valgrind
hooks are supported in ST, there are still many false positives. A more
reasonable approach is to have Valgrind report incremental memory leaks.
This way, global and static variables can be avoided, and detection can
be achieved without exiting the program. Follow these steps:

1. Compile SRS with Valgrind support: `./configure --valgrind=on &&
make`
2. Start SRS with memory leak detection enabled: `valgrind
--leak-check=full ./objs/srs -c conf/console.conf`
3. Trigger memory detection by using curl to access the API and generate
calibration data. There will still be many false positives, but these
can be ignored: `curl http://127.0.0.1:1985/api/v1/valgrind?check=added`
4. Perform load testing or test the suspected leaking functionality,
such as RTMP streaming: `ffmpeg -re -i doc/source.flv -c copy -f flv
rtmp://127.0.0.1/live/livestream`
5. Stop streaming and wait for SRS to clean up the Source memory,
approximately 30 seconds.
6. Perform incremental memory leak detection. The reported leaks will be
very accurate at this point: `curl
http://127.0.0.1:1985/api/v1/valgrind?check=added`

> Note: To avoid interference from the HTTP request itself on Valgrind,
SRS uses a separate coroutine to perform periodic checks. Therefore,
after accessing the API, you may need to wait a few seconds for the
detection to be triggered.

---------

Co-authored-by: Jacob Su <suzp1984@gmail.com>
2024-08-21 15:39:59 +08:00
Winlin
e7069788e9
SmartPtr: Support shared ptr for live source. v6.0.129 (#4089)
Detail change log:

1. [Simple,Refactor] Remove member fields of http entry, etc.
e34b3d3aa4
2. [Ignore] Rename source to live_source.
846f95ec96
3. [Ignore] Use directly ptr in consumer.
d38af021ad
4. [Complex, Important] Use shared ptr for live source.
88f922413a

The object relationship:

![live-source](1adb59af-6e7a-40f3-9a4a-1cc849d7dae1)

---

Co-authored-by: Jacob Su <suzp1984@gmail.com>
2024-06-15 07:54:56 +08:00
winlin
2a2da2253f Switch to 2013-2024. v6.0.109 2024-01-01 10:51:24 +08:00
winlin
29eff1a242 Refine LICENSE. 2023-10-23 14:33:19 +08:00
winlin
c46ef81ff2 SRS5: Update license date to 2023. v5.0.123
PICK 72f8ed4916
2023-01-01 08:56:20 +08:00
winlin
3e2f8622f8 APM: Support distributed tracing by Tencent Cloud APM. v5.0.63 2022-09-16 18:54:28 +08:00
winlin
2c259bd95b Refactor: Extract SrsNetworkKbps from SrsKbps. v5.0.53 2022-08-30 13:41:27 +08:00
winlin
1630918b0f Refactor: Use compositor for ISrsKbpsDelta. v5.0.51 2022-08-30 09:26:51 +08:00
winlin
d117145b95 Update date from 2021 to 2022. 2022-06-20 19:22:25 +08:00
winlin
fa78cf3354 Prefix with srs_protocol in protocol directory. 2022-06-09 20:26:58 +08:00
winlin
665ad564fb Rename service to protocol files. 2022-06-09 19:59:51 +08:00
winlin
d5c86dc5fa Switch LICENSE from MIT to **MIT or MulanPSL-2.0**. v5.0.21 2022-01-13 18:40:22 +08:00
winlin
a81aa2edc5 Squash: Merge SRS 4.0 2021-10-10 12:05:26 +08:00
Winlin
c8a1e0f3da
Refine AUTHORS.txt to AUTHORS.md, etc. 5.0.8 (#2464)
* Refine AUTHORS.txt to AUTHORS.md, etc. 5.0.8

* Update README.md

* Update README.md

* Refine format for AUTHORS.md
2021-07-08 14:30:47 +08:00
winlin
15901cacee SquashSRS4: Use SPDX-License-Identifier: MIT. 5.0.3 2021-05-31 13:42:20 +08:00
winlin
e3bca883e1 SuqashSRS4: Build SRT native 2021-05-16 16:14:00 +08:00
winlin
6a980683f7 SquashSRS4: Remove object cache and stat api 2021-05-14 18:17:42 +08:00
winlin
8b74c7cb89 SquashSRS4: Happy 2021 2021-04-16 09:29:43 +08:00
winlin
2a14dc0ebd For #1657: Refine TCP connections arch 2020-11-05 12:25:54 +08:00
winlin
4ba66b388b For #1657: Refine TCP connections arch 2020-11-05 11:47:24 +08:00
winlin
0a82719bd3 Refine connection structure 2020-11-04 18:15:43 +08:00
winlin
64705d1cc8 RTC: Refine resouce management 2020-09-19 10:30:05 +08:00
winlin
88826aae8f Rename SrsConnection to SrsTcpConnection 2020-09-11 16:59:22 +08:00
winlin
81a7c252d6 TCP: Log the remote port for client. 2020-07-04 17:19:08 +08:00
winlin
08312ddc42 Support config the mw_sleep and mw_msgs 2020-04-18 10:04:45 +08:00
winlin
d783a12f89 Happy 2020 2019-12-30 10:10:35 +08:00
winlin
5d17bb8bb0 Remove KAFKA. 3.0.53 2019-10-03 12:45:38 +08:00
winlin
6b2c71d385 Refine typo in files. 3.0.51 2019-04-30 08:30:13 +08:00
winlin
45009785fb Refine typo in app. 2019-04-30 08:24:52 +08:00
winlin
e436cc5665 Refine SrsBasicRtmpClient in time unit. 2019-04-22 08:03:12 +08:00
winlin
d306ee7506 Refine ms in time unit 2019-04-18 08:50:43 +08:00
winlin
5af572ab50 Refine SrsRtmpConn.duration in time unit. 2019-04-18 08:46:42 +08:00
winlin
402e614471 Refine get_send_min_interval in time unit 2019-04-16 07:59:27 +08:00
winlin
9b1222a79c Refine get_publish_normal_timeout in time unit 2019-04-10 07:58:39 +08:00
winlin
170872135d Refine get_publish_1stpkt_timeout in time unit 2019-04-10 07:53:09 +08:00
winlin
d6828a3e58 Refine get_mw_sleep in time unit 2019-04-09 09:39:16 +08:00
winlin
b2d1d84634 Change to 2019 2019-01-01 21:37:28 +08:00
winlin
6234905532 Refactor ISrsKbpsDelta 2019-01-01 17:36:27 +08:00
winlin
c26b475bae Refine kbps, stub wall clock 2018-12-23 20:47:17 +08:00
winlin
6e75993e7f Change public virtual to virtual public 2018-12-23 19:54:08 +08:00
winlin
2f09ec4353 For #464, refine result of origin cluster api 2018-02-16 14:13:14 +08:00
winlin
ca1395a807 Change date from 2017 to 2018 2018-01-07 10:58:53 +08:00
winlin
6eae93258a For #913, APP support complex error. 2018-01-01 19:39:57 +08:00
winlin
9802dc326e For #913, source support complex error 2017-09-23 22:12:33 +08:00
winlin
20a42599f3 For #913, http callback use complex error 2017-09-22 19:54:50 +08:00
winlin
fd91df9411 For #913, reload use complex error 2017-09-22 16:14:30 +08:00
winlin
9f5224c34a For #913, use complex error for http 2017-07-29 21:39:57 +08:00
winlin
1bf99e8f3e For #907, Wrap ST, only use in service ST. 2017-05-30 09:05:02 +08:00
winlin
e3526c0cf6 For #820, modules use service only. 2017-03-26 13:40:39 +08:00
winlin
0a57a46016 Refine LICENSE 2017-03-25 21:29:29 +08:00