Hi, I’m Divij Sharma, a final-year Computer Science and Engineering undergraduate at the Indian Institute of Information Technology, Jabalpur. I’ve been deeply involved with open source communities for some time now, having participated in Google Summer of Code where I worked with FOSSology and Code for GovTech where I worked with a2i Bangladesh. I love and trust open-source software – there’s something deeply satisfying about contributing to projects that benefit users/developers worldwide, working alongside talented individuals, and having meaningful conversations with people from diverse communities. Apart from coding, I also love listening to loud Punjabi music!
Understanding Feilong and the “Give Love to the Bugs List” Initiative
Feilong is a z/VM Cloud Connector that provides virtual resource management for z/VM systems. As an open source project under the Open Mainframe Project umbrella, Feilong serves as a critical bridge between modern cloud management tools and IBM’s powerful z/VM hypervisor. The project enables users to manage VM lifecycle dynamically and automatically through REST APIs without requiring deep knowledge of z/VM itself.
My mentorship project, “Give Love to the Bugs List,” focuses on a critical but often overlooked aspect of software maintenance: comprehensive bug triage and resolution. At the start of the mentorship, Feilong’s bug list included 98 bugs on Launchpad and 19 issues on GitHub. The purpose of this mentorship is to test and review these issues systematically, migrate them to a unified tracking system, classify them appropriately, and resolve as many as technically feasible.
This work directly improves Linux VM management on mainframes and helps maintain critical open source infrastructure that powers enterprise computing environments worldwide. The project requires not just technical problem-solving skills, but also the ability to understand legacy systems, decode cryptic bug reports, and make architectural decisions about issue prioritization.
z/VM and Feilong In Action
(i) z/VM hypervisor login screen on C3270
(ii) Feilong REST APIs to get guests and details
Systematic Bug Analysis Methodology
I developed a systematic approach to handle the analysis task
Phase 1: Discovery and Cataloging
Each bug underwent initial triage to determine its current relevance. I examined the codebase to verify whether reported issues still existed, checked for existing fixes, and validated whether problems were duplicates of other reports.
Phase 2: Technical Validation
For active bugs, I performed code analysis to understand the root cause. This often involved studying the code, examining REST API schemas, and understanding z/VM’s behavior patterns. Some bugs required setting up test environments to reproduce issues.
Phase 3: Resolution Planning
Based on technical analysis, I categorized bugs into several buckets:
- Immediately Closeable: Issues already fixed but not properly closed
- Migration Candidates: Valid issues that should move to GitHub for ongoing tracking. These were further classified into:
- Bugs
- Enhancements
- Security
12 Weeks of Systematic Progress
Before Week 1, I set a goal to process 10 bugs per week, and over the past 12 weeks I have successfully processed all the bugs. The comprehensive migration and resolution document is attached and week wise progress is below:
Weekly Report: Give Love To The Bugs List @ Divij Sharma
Week 1
- Initial Setup: Established systematic bug triage methodology and gained understanding of Feilong’s architecture
- Access Resolution: Worked on obtaining write access to Launchpad bug tracker for hands-on issue management
- First 10 Bugs: Processed initial batch including documentation verification and API validation issues
Week 2
- Methodology Refinement: Developed expertise in complex bug analysis and expanded scope to more technical issues
- Validation & Performance: Strengthened API input checks and examined performance impacts of validation changes
- Feature Migration: Successfully migrated enhancement requests from Launchpad to GitHub platform
Week 3
- VM Environment Access: Gained access to Feilong VM environment enabling hands-on testing and validation
- Complex Debugging: Tackled advanced issues like guest deployment root disk identification problems
- Practical Validation: Moved from theoretical analysis to direct system testing of bug reports
Week 4
- Strategic Perspective: Shifted focus toward bugs enhancing Feilong’s future capabilities rather than just current fixes
- Security Enhancement: Identified MD5 migration as major security concern requiring community discussion
- Performance Analysis: Investigated deployment performance improvements and atomic API operations
Week 5
- Documentation Focus: Concentrated on documentation-related issues and project migration cleanup problems
- Migration Artifacts: Resolved multiple bugs stemming from mfcloud to openmainframe project transition
- Testing Framework: Addressed Python 3.7 compatibility issues and language version updates
Week 6
- Documentation Completeness: Ensured comprehensive documentation coverage and removed outdated references
- Reference Cleanup: Migrated OPNCLOUD user references requiring documentation updates
- Service Configuration: Verified SDK server service enable steps were properly documented
Week 7
- Documentation Standardization: Updated and unified legacy and new feature docs to reflect recent API and configuration changes
- Issue Review: Re-examined and closed outstanding issues from prior weeks, ensuring accurate references and resolutions
- Bug Closures: Processed and closed 10 bugs, including doc fixes, typo corrections, and removal of obsolete references
Week 8
- Network Timing Documentation: Documented timing issues in network setup and the need for reliable sequencing (e.g., udevadm)
- API Endpoint Review: Noted deprecation of GET /guests/{userid}/nic and its replacement with GET /guests/interfacestats
- Error Handling Notes: Summarized updated error codes for network operations and IUCV snapshot retry suggestions
Week 9
- Legacy Code Insights: Documented key SMAPI workflows and noted nuances in network integration
- Concurrency Concerns: Recorded race conditions in snapshot/delete operations and the need for robust sequencing
- Issue Tracking: Logged statuses for 10 issues, including closures, migrations, and comment additions
Week 10
- Documentation Fixes: Closed bugs for LNKNOPAS, Jenkins log messages, host_diskpool_get_info, CPU IFL definitions, and SMAPI inspect_stats docs
- Migration Tasks: Migrated cache-setting, diskpool “500 if not exists,” and validation-parameter issues, plus the pyproject.toml build update to GitHub for further tracking
- Active GitHub Items: Kept “Enhance Error message” and the build-config transition issue open for ongoing work
Week 11
- SMCLI Enhancements: Noted missing System_Compliance_Information_Query wrapper and left it open
- Doc Updates: Closed SLES/Ubuntu install guide and volume syntax issues after documentation fixes
- Open Roadmap Items: Kept admin_password, privilege class B, z/OS support, raw-track-access, ECBDIC tables, missing DB columns, and PATCH vs. PUT issues open for future work
Week 12
-
- Final Bug Resolution: Successfully completed the triage and resolution of the remaining GitHub bugs
- Documentation Updates: Addressed several documentation-related issues by confirming their resolution, and committing a fix
- Bug List Review: With the list now complete, I performed a final review of the work and corrected a few remaining errors
Project Statistics and Outcomes
The 12-week “Give Love to the Bugs List” mentorship successfully achieved its goal of comprehensively addressing Feilong’s bug backlog. Below is a complete breakdown of the project outcomes:
Metric | Count/Value | Notes |
Initial Launchpad Bugs | 98 | Starting point from Launchpad |
Initial GitHub Issues | 19 | Starting point from GitHub |
Total Initial Issues | 117 | Combined initial workload |
Total Issues processed | 117 (100%) | All bugs successfully processed |
Issues Closed | 62 | Confirmed closures |
Issues Migrated | 39 | Conformed migrations |
Issues Left Open | 16 | Strategic items for future work |
What Have I Learnt
Over the course of this mentorship, I’ve grown not just technically but also in how I approach complex software projects and work with people. Here are some key takeaways from my experience:
- I gained a strong understanding of how legacy systems like the z/VM hypervisor work under the hood, and how to effectively connect them with modern tools using REST APIs.
- I learned how to methodically tackle bugs through a three-stage process: first discovering and cataloging them, then digging into the technical details to understand root causes, and finally planning out realistic fixes or improvements.
- This mentorship further strengthened my ability to collaborate in distributed teams, communicate clearly with the open source community, facilitate discussions, and help new contributors get started via docs.
- Lastly, managing a 12-week project roadmap taught me practical skills in planning, setting achievable milestones, and adapting priorities as the project progressed.
Overall, this experience has prepared me well for taking on complex engineering challenges, whether that’s in open source, or in professional development.
Acknowledgments and Community Appreciation
This mentorship has been incredibly rewarding thanks to the generous support of the Open Mainframe Project community, particularly mentors – Eric Bischoff, Mike Friesenegger, and Aazam Thakur – for their patient guidance and technical expertise. Special appreciation goes to Rajat Sharma for his invaluable support throughout this journey, as well as to the Feilong Community and project maintainers who created comprehensive bug reports that made systematic triage possible, and to the Open Mainframe Project for creating mentorship opportunities that connect students with real-world enterprise software challenges while contributing to critical infrastructure projects.