Google Summer of Code Updates from Week #8 (July 17th to July 21th)

With the 8th week of GSoC gone, in this blog, we bring updates on what has been happening, with news from our mentors and contributors.

Updates from Veronica, our GSoC admin and mentor

Last week was challenging for us, with multiple colliding deadlines and some team members on holiday. Also, some of our contributors have been having health issues, so we are trying to balance goals, progress and life - on all fronts. We are very excited about the performance measurements currently happening on Slips, which will help us gain insights into where to improve and how to make Slips more efficient and fast. 

We are also making arrangements to participate in the Google Mentor Summit in October in the US, which would be a great opportunity to meet with other mentors and learn about shared experiences. 

Updates from Daniel, our Slips Performance Contributor

For this week the goal was to complete live memory profiling. While implementing single process profiling on the main process went smoothly, attempting to create a multi process profiling feature was more difficult. There were some setbacks which made my goal unable to be achieved, so workarounds needed to be tested and developed first before I could continue with implementation. First, there was no direct API support in memray to allow for live multi process profiling. The tracker API provided can only be run in one process at a time and only one global instance at a time as well, which made my initial plan of having a dashboard in the web interface of all of the processes getting profiled impossible. Besides this, another problem was that there needed to be a way to programmatically start and stop the tracker within separate processes from the main process which would be responsible for managing the tracking. To do this, I had to patch the multiprocessing.Process class with a custom class that extended each process object with functionality necessary for controlling profiling externally. After a lot of testing, I developed a somewhat workable profiling design that would patch the process class and run start and stop functions for the tracker object for the memory profiler. After starting profiling, the web interface can attach and reattach to a static port and switch between processes in the live feed. This is the new design and plan for multi process profiling. The plan for next week is to implement this new design, which hopefully goes much more smoothly.

Before you go…

Slips is a core part of our AI VPN network forensics framework that fuels the Emergency VPN service. The Emergency VPN is our service dedicated to providing journalists, activists, human rights defenders and civil society with a free network security assessment of their devices’ network traffic to identify digital threats. Learn more about the AI VPN and how Slips is integrated with it.