Skip to content

Commit 4b61599

Browse files
Merge pull request #351 from Vaibhavsahu2810/updates/2025/week-6
chore(docs): Add osselot week 6,7,8 docs Reviewrd-by: shaheem.azmal@siemens.com
2 parents 2ae91af + 3b4dd57 commit 4b61599

File tree

5 files changed

+152
-0
lines changed

5 files changed

+152
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
title: Week 6
3+
author: Vaibhav Sahu
4+
tags: [gsoc25, OSSelot]
5+
---
6+
7+
<!--
8+
SPDX-License-Identifier: CC-BY-SA-4.0
9+
SPDX-FileCopyrightText: 2025 Vaibhav Sahu <sahusv4527@gmail.com>
10+
-->
11+
12+
# Week 6
13+
14+
*(July 8, 2025 – July 14, 2025)*
15+
16+
## Meeting 6
17+
18+
*(July 11, 2025)*
19+
20+
### Attendees
21+
22+
* [Vaibhav Sahu](https://github.com/Vaibhavsahu2810)
23+
* [Jan Altenberg](https://github.com/JanAltenberg)
24+
25+
### Discussions
26+
27+
* Demonstrated the working prototype of parallelized `ScanCode` scanning within FOSSology.
28+
* Discussed runtime behavior with multiple workers and how resource constraints are enforced.
29+
* Reviewed performance benchmarks from busybox test uploads.
30+
* Collected feedback on user-configurable CLI arguments, some bugs while testing and their integration.
31+
32+
## Updates
33+
34+
* **Parallel ScanCode implementation completed**
35+
36+
* Fully implemented multiprocessing support in `runscanonfiles.py`.
37+
* Introduced CLI parameters for customization:
38+
parser.add_argument("--parallel", type=int, default=1, help="Number of parallel processes (will be adjusted based on available memory)")
39+
parser.add_argument("--nice-level", type=int, default=10, help="Process nice level (0-19)")
40+
parser.add_argument("--max-tasks", type=int, default=1000, help="Max tasks per worker process")
41+
parser.add_argument("--heartbeat-interval", type=int, default=60, help="Heartbeat interval in seconds")
42+
* Enforced memory and CPU resource limits for each worker process using OS-level controls.
43+
44+
* **Performance testing**
45+
46+
* Tested using busybox-1.36.1.tar.bz2 uploads.
47+
* Scanning time improved drastically — from **\~12 minutes to just \~4 minutes**.
48+
* Below are side-by-side comparisons:
49+
50+
**Single-process run**
51+
![Single-process result](/img/osselot/single.png)
52+
53+
**Parallelized run (4 processes)**
54+
![Parallel-process result](/img/osselot/parallel.png)
55+
56+
## Plan for Next Week
57+
58+
1. Avoid starting worker threads if available memory is too low. Ensure threads gracefully shut down if they don’t receive sufficient memory (without hard memory limits).
59+
2. Implement proper cleanup to ensure all worker processes terminate when the user cancels the agent.
60+
3. Reduce the default number of parallel jobs to a safer baseline.
61+
4. Finalize and verify heartbeat handling for worker monitoring.
62+
63+
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
title: Week 7
3+
author: Vaibhav Sahu
4+
tags: [gsoc25, OSSelot]
5+
---
6+
7+
<!--
8+
SPDX-License-Identifier: CC-BY-SA-4.0
9+
SPDX-FileCopyrightText: 2025 Vaibhav Sahu <sahusv4527@gmail.com>
10+
-->
11+
12+
13+
# Week 7
14+
15+
*(July 15, 2025 – July 21, 2025)*
16+
17+
## Meeting 7
18+
19+
*(July 18, 2025)*
20+
21+
### Attendees
22+
23+
* [Vaibhav Sahu](https://github.com/Vaibhavsahu2810)
24+
* [Jan Altenberg](https://github.com/JanAltenberg)
25+
* [Shaheem Azmal M MD](https://github.com/shaheemazmalmmd)
26+
27+
### Discussions
28+
29+
* Walked through heartbeat implementation and memory-aware parallelization logic.
30+
* Discussed challenges with SIGTERM signal handling for agent cancellation.
31+
* Shaheem shared helpful documentation on process signal handling strategies in Python.
32+
* Reviewed improvements in process management and configuration defaults.
33+
34+
## Updates
35+
36+
* Heartbeat functionality is now fully integrated and working as intended for all worker processes.
37+
* Removed hardcoded memory limit configuration.
38+
* Implemented a dynamic adjustment mechanism that reduces the number of worker processes based on available system memory.
39+
* Lowered the default number of parallel jobs to a safer.
40+
* Began work on capturing `SIGTERM` to cleanly shut down all worker processes when the agent is canceled.
41+
* Facing some technical challenges in implementation—discussed with Shaheem and received relevant documentation for further debugging.
42+
43+
## Plan for Next Week
44+
45+
1. Finalize and fully implement shutdown behavior when a user cancels the agent (SIGTERM handling).
46+
2. Ensure job status and disclaimers are properly reflected in the **Job View** UI.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
title: Week 8
3+
author: Vaibhav Sahu
4+
tags: [gsoc25, OSSelot]
5+
---
6+
7+
<!--
8+
SPDX-License-Identifier: CC-BY-SA-4.0
9+
SPDX-FileCopyrightText: 2025 Vaibhav Sahu <sahusv4527@gmail.com>
10+
-->
11+
12+
13+
# Week 8
14+
15+
*(July 22, 2025 – July 28, 2025)*
16+
17+
## Meeting 8
18+
19+
*(July 25, 2025)*
20+
21+
### Attendees
22+
23+
* [Vaibhav Sahu](https://github.com/Vaibhavsahu2810)
24+
* [Jan Altenberg](https://github.com/JanAltenberg)
25+
26+
### Discussions
27+
28+
* Confirmed that thread shutdown now works correctly when a user cancels the agent.
29+
* Reviewed heartbeat logging enhancements and added ETA .
30+
* Discussed current inconsistencies in the **FOSSology Dump** mechanism.
31+
* Jan advised testing of the dump system to help identify bugs.
32+
33+
## Updates
34+
35+
* Finalized SIGTERM capture logic; worker processes now gracefully stop when the agent is cancelled.
36+
* Improved heartbeat log structure for better traceability.
37+
* Began preliminary testing of the FOSSology Dump system to identify existing issues.
38+
* Jan pointed out that some bugs might be affecting reports.
39+
40+
## Plan for Next Week
41+
42+
1. Conduct thorough testing of all PRs made up to this point.
43+
2. Continue testing and investigation into the FOSSology Dump system to help identify potential bugs.

static/img/osselot/parallel.png

32.1 KB
Loading

static/img/osselot/single.png

30.4 KB
Loading

0 commit comments

Comments
 (0)