{"id":813,"date":"2009-03-28T21:15:38","date_gmt":"2009-03-28T20:15:38","guid":{"rendered":"http:\/\/www.toomik.net\/helen\/blog\/?p=813"},"modified":"2010-01-28T22:35:09","modified_gmt":"2010-01-28T21:35:09","slug":"build_server_brought_down_by_space-eating_ncoverexplorer","status":"publish","type":"post","link":"https:\/\/www.toomik.net\/helen\/blog\/2009\/03\/28\/build_server_brought_down_by_space-eating_ncoverexplorer\/","title":{"rendered":"Build server brought down by space-eating NCoverExplorer"},"content":{"rendered":"<p>\nOur dev\/build server at work ground to a halt yesterday. When I logged on to look at it, the cause was immediately obvious: the second hard drive, the one we use for our builds, was 100% full. And I mean 100.0000% full, with exactly 0 bytes free space. That was a bit of a surprise since I had a distinct memory of seeing 40 or 50GB free space there some months ago, and none of us could remember installing anything particularly voracious on that machine.\n<\/p>\n<p>\nFurther investigation showed that the main culprit was our NCover output folders, which hold coverage reports for our two regular builds. One of the folders had about 425,000 files, ranging from 12KB to 150KB in size. The second folder was so full that I didn&#8217;t even try to list all its contents, it would have taken forever. Just deleting all these files took most of the day (and that was from the command line &ndash; when I made the mistake of browsing to the smaller folder in Windows Explorer, Explorer keeled over). Emptying both folders freed the expected ~50GB and quickly got the computer back on its feet.\n<\/p>\n<p>\nWhere did all this stuff come from? It turned out that we had misunderstood how NCoverExplorer generated its files. We thought it would reuse its file names, so the coverage report for a given class would always be found in the same file, and each new report would overwrite the old one, if saved in the same folder. Instead it generates random file names every time. We&#8217;d inadvertently been saving all our detailed coverage reports, with our entire source code nicely rendered in html markup, and generating several new copies every day. No wonder we were running out of space.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Our dev\/build server at work ground to a halt yesterday. When I logged on to look at it, the cause was immediately obvious: the second hard drive, the one we use for our builds, was 100% full. And I mean 100.0000% full, with exactly 0 bytes free space. That was a bit of a surprise [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[225,172],"class_list":["post-813","post","type-post","status-publish","format-standard","hentry","category-geeky_things","tag-ncoverexplorer","tag-work"],"_links":{"self":[{"href":"https:\/\/www.toomik.net\/helen\/blog\/wp-json\/wp\/v2\/posts\/813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.toomik.net\/helen\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.toomik.net\/helen\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.toomik.net\/helen\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.toomik.net\/helen\/blog\/wp-json\/wp\/v2\/comments?post=813"}],"version-history":[{"count":1,"href":"https:\/\/www.toomik.net\/helen\/blog\/wp-json\/wp\/v2\/posts\/813\/revisions"}],"predecessor-version":[{"id":1373,"href":"https:\/\/www.toomik.net\/helen\/blog\/wp-json\/wp\/v2\/posts\/813\/revisions\/1373"}],"wp:attachment":[{"href":"https:\/\/www.toomik.net\/helen\/blog\/wp-json\/wp\/v2\/media?parent=813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.toomik.net\/helen\/blog\/wp-json\/wp\/v2\/categories?post=813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.toomik.net\/helen\/blog\/wp-json\/wp\/v2\/tags?post=813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}