<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">I was able to resolve this issue, but only by hacking on /usr/libexec/kojid/mergerepos (from koji-builder-1.9.0-10.fc21.gitcd45e886.noarch), specifically with:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">--- /usr/libexec/kojid/mergerepos.orig&nbsp; 2015-01-27 23:41:00.000000000 -0500<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&#43;&#43;&#43; /usr/libexec/kojid/mergerepos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2015-04-01 17:06:36.164997686 -0400<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">@@ -125,7 &#43;125,7 @@<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.yumbase.preconf.debuglevel = 2<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.yumbase._getConfig('/dev/null', init_plugins=False, debuglevel=2)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.yumbase.conf.cachedir = tempfile.mkdtemp()<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.yumbase.conf.cachedir = tempfile.mkdtemp(dir='/var/tmp')<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.yumbase.conf.cache = 0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.archlist = arches<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.mdconf.groupfile = groupfile<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Obviously this is a dirty hack.&nbsp; I suspect though the more correct approach would be to use the &#8220;workdir&#8221; setting from kojid.conf.&nbsp; I was rather surprised when it didn&#8217;t do this already, but then workdir was
 relocated not all that long ago[1].<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">[1] <a href="https://lists.fedoraproject.org/pipermail/buildsys/2014-May/004293.html">
https://lists.fedoraproject.org/pipermail/buildsys/2014-May/004293.html</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">FWIW, this was failing on a VM with 2 GiB of RAM.&nbsp; With the above patch, my repo-gen ran longer, but now was getting SIGKILL, from the OOMK as it turns out.&nbsp; Raising the VM to 4 GiB avoided the visit from the
 OOMK and I have no idea if that would&#8217;ve made my tmpfs /tmp large enough to avoid this whole mess or not.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<p class="MsoNormal"><span style="color:#1F497D">--<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">John Florian<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> buildsys-bounces@lists.fedoraproject.org [mailto:buildsys-bounces@lists.fedoraproject.org]
<b>On Behalf Of </b>John Florian<br>
<b>Sent:</b> Wednesday, April 01, 2015 14:46<br>
<b>To:</b> buildsys<br>
<b>Subject:</b> mergerepos dies with IOError: [Errno 28] No space left on device<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">I&#8217;m trying to get a new Koji deployment up and running atop Fedora 21.&nbsp; I&#8217;m mostly there (I think).&nbsp; I was able to &#8220;koji regen-repo &#8230;&#8221; but my first build attempts were failing due to not having the useradd tool in the build root, despite
 this:<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">koji list-groups dist-fedora21-build<o:p></o:p></p>
<p class="MsoNormal">build&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; bash: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; bzip2: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; coreutils: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; cpio: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; diffutils: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; fedora-release: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; findutils: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; gawk: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; gcc: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; gcc-c&#43;&#43;: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; grep: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; gzip: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; info: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; make: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; patch: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; redhat-rpm-config: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; rpm-build: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; sed: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; shadow-utils: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; tar: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; unzip: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; util-linux: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; which: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; xz: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">srpm-build&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; bash: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; curl: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; cvs: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; fedora-release: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; fedpkg-minimal: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; gnupg2: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; make: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; redhat-rpm-config: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; rpm-build: None, default&nbsp; [dist-fedora21-build]<o:p></o:p></p>
<p class="MsoNormal">&nbsp; shadow-utils: None, default&nbsp; [dist-fedora21-build<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">I thus reasoned this is because yum has no idea where to get shadow-utils from which I could rectify by setting up an external-repo pointing to our local mirror of the Fedora 21 repo.&nbsp; Keeping it simple, I ignored updates and stuck to the
 base release repo only for the moment.&nbsp; With the ext. repo added, I tried the regen-repo command again and now I see from the mergerepos.log:<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">$ /usr/libexec/kojid/mergerepos -a x86_64 -b /mnt/koji/repos/dist-fedora21-build/20/x86_64/blocklist -o /var/tmp/koji/tasks/66/66/repo -g /mnt/koji/repos/dist-fedora21-build/20/groups/comps.xml
 -r <a href="file:///\\var\tmp\koji\tasks\66\66\repo_20_premerge\">file:///var/tmp/koji/tasks/66/66/repo_20_premerge/</a> -r
<a href="http://mdct-00fs.dartcontainer.com/ftp/pub/fedora/21/Everything/x86_64/os/">
http://mdct-00fs.dartcontainer.com/ftp/pub/fedora/21/Everything/x86_64/os/</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">JF: Set self.yumbase.conf.cachedir: /tmp/tmpyXkTJb<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Adding repo:
<a href="file:///\\var\tmp\koji\tasks\66\66\repo_20_premerge\">file:///var/tmp/koji/tasks/66/66/repo_20_premerge/</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Adding repo:
<a href="http://mdct-00fs.dartcontainer.com/ftp/pub/fedora/21/Everything/x86_64/os/">
http://mdct-00fs.dartcontainer.com/ftp/pub/fedora/21/Everything/x86_64/os/</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">JF: Writing origins: /tmp/tmpyXkTJb/pkgorigins<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Traceback (most recent call last):<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">&nbsp; File &quot;/usr/libexec/kojid/mergerepos&quot;, line 278, in &lt;module&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; main(sys.argv[1:])<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">&nbsp; File &quot;/usr/libexec/kojid/mergerepos&quot;, line 272, in main<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; merge.merge_repos()<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">&nbsp; File &quot;/usr/libexec/kojid/mergerepos&quot;, line 162, in merge_repos<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; self.sort_and_filter()<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">&nbsp; File &quot;/usr/libexec/kojid/mergerepos&quot;, line 232, in sort_and_filter<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">&nbsp;&nbsp;&nbsp; origins.write('%s\t%s\n' % (pkg_nvra, repo.urls[0]))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">IOError: [Errno 28] No space left on device<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">The lines prefixed &#8220;JF: &#8220; are my own added messages since the original error didn&#8217;t provide any details about what device was full.&nbsp; Looking at RepoMerge.__init__(), &nbsp;I don&#8217;t see any configurable way to change where the cachedir is located
 and since /tmp is tmpfs this currently seems doomed.&nbsp; Have I missed something or done something stupid or is this a bug?<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">--<o:p></o:p></p>
<p class="MsoNormal">John Florian<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</body>
</html>