@@ -125,8 +125,16 @@ func main() {
125125 log .Fatalf ("Error connecting client: %v" , err )
126126 }
127127
128+ defer func () { // Defer disconnect client
129+ err = client .Disconnect (context .Background ())
130+ if err != nil {
131+ log .Fatalf ("Failed to disconnect client: %v" , err )
132+ }
133+ }()
134+
128135 ctx , cancel := context .WithTimeout (context .Background (), 5 * time .Second )
129136 defer cancel ()
137+
130138 err = client .Ping (ctx , nil )
131139 if err != nil {
132140 log .Fatalf ("Error pinging MongoDB Analytics: %v" , err )
@@ -136,7 +144,11 @@ func main() {
136144 db := client .Database (expandedMetricsDB )
137145
138146 // Get raw data, most recent stable region, and calculate energy stats
139- patchRawData , err := findRawData (version , db .Collection (rawResultsColl ))
147+
148+ findCtx , cancel := context .WithTimeout (context .Background (), 30 * time .Second )
149+ defer cancel ()
150+
151+ patchRawData , err := findRawData (findCtx , version , db .Collection (rawResultsColl ))
140152 if err != nil {
141153 log .Fatalf ("Error getting raw data: %v" , err )
142154 }
@@ -146,39 +158,35 @@ func main() {
146158 log .Fatalf ("Error getting energy statistics: %v" , err )
147159 }
148160 log .Println (generatePRComment (allEnergyStats , version ))
149-
150- // Disconnect client
151- err = client .Disconnect (context .Background ())
152- if err != nil {
153- log .Fatalf ("Failed to disconnect client: %v" , err )
154- }
155161}
156162
157- func findRawData (version string , coll * mongo.Collection ) ([]RawData , error ) {
163+ func findRawData (ctx context. Context , version string , coll * mongo.Collection ) ([]RawData , error ) {
158164 filter := bson.D {
159165 {"info.project" , "mongo-go-driver" },
160166 {"info.version" , version },
161167 {"info.variant" , "perf" },
162168 {"info.task_name" , "perf" },
163169 }
164170
165- findCtx , cancel := context .WithTimeout (context .Background (), 30 * time .Second )
166- defer cancel ()
167-
168- cursor , err := coll .Find (findCtx , filter )
171+ cursor , err := coll .Find (ctx , filter )
169172 if err != nil {
170173 log .Fatalf (
171174 "Error retrieving raw data for version %q: %v" ,
172175 version ,
173176 err ,
174177 )
175178 }
176- defer func () { err = cursor .Close (findCtx ) }()
179+ defer func () {
180+ err = cursor .Close (ctx )
181+ if err != nil {
182+ log .Fatalf ("Error closing cursor while retrieving raw data for version %q: %v" , version , err )
183+ }
184+ }()
177185
178186 log .Printf ("Successfully retrieved %d docs from version %s.\n " , cursor .RemainingBatchLength (), version )
179187
180188 var rawData []RawData
181- err = cursor .All (findCtx , & rawData )
189+ err = cursor .All (ctx , & rawData )
182190 if err != nil {
183191 log .Fatalf (
184192 "Error decoding raw data from version %q: %v" ,
0 commit comments