Gentoo Archives: gentoo-user

From: "J. Roeleveld" <joost@××××××××.org>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] emerge -u fails with "OSError: [Errno 12] Cannot allocate memory" [ RESOLVED, kinda ]
Date: Wed, 17 Jun 2020 06:42:55
Message-Id: 2303802.jE0xQCEvom@eve
In Reply to: Re: [gentoo-user] emerge -u fails with "OSError: [Errno 12] Cannot allocate memory" [ RESOLVED, kinda ] by n952162
1 On Wednesday, June 17, 2020 7:54:22 AM CEST n952162 wrote:
2 > On 06/16/20 21:35, J. Roeleveld wrote:
3 > > On 16 June 2020 20:31:56 CEST, n952162 <n952162@×××.de> wrote:
4 > >> Admonished to get everything updated, I turned to my raspberry pi with
5 > >> Sakaki's binary image. Synced and updated portage with no problem.
6 > >> Then I did an emerge -u @world and got (after *hours* of dependency
7 > >>
8 > >> checking):
9 > >>>>> Jobs: 0 of 206 complete, 1 running Load avg: 2.84, 3.44, 3.85
10 > >>>>> Emerging binary (1 of 206) sys-libs/glibc-2.31-r5::gentoo
11 > >>>>> Jobs: 0 of 206 complete, 1 running Load avg: 2.84, 3.44, 3.85
12 > >>>>> Jobs: 0 of 206 complete Load avg: 3.60, 3.54, 3.87
13 > >>>>> Installing (1 of 206) sys-libs/glibc-2.31-r5::gentoo
14 > >>>>> Jobs: 0 of 206 complete Load avg: 3.60, 3.54, 3.87
15 > >>
16 > >> Exception in callback AsynchronousTask._exit_listener_cb(<bound
17 > >> method...0x7f9180d9d8>>)
18 > >> handle: <Handle AsynchronousTask._exit_listener_cb(<bound
19 > >> method...0x7f9180d9d8>>)>
20 > >>
21 > >> Traceback (most recent call last):
22 > >> File "/usr/lib64/python3.6/asyncio/events.py", line 145, in _run
23 > >> self._callback(*self._args)
24 > >> File
25 > >>
26 > >> "/usr/lib64/python3.6/site-packages/_emerge/AsynchronousTask.py", line
27 > >> 201, in _exit_listener_cb
28 > >>
29 > >> listener(self)
30 > >> File
31 > >>
32 > >> "/usr/lib64/python3.6/site-packages/_emerge/BinpkgPrefetcher.py", line
33 > >> 31, in _fetcher_exit
34 > >>
35 > >> self._start_task(verifier, self._verifier_exit)
36 > >> File "/usr/lib64/python3.6/site-packages/_emerge/CompositeTask.py",
37 > >>
38 > >> line 113, in _start_task
39 > >>
40 > >> task.start()
41 > >> File
42 > >>
43 > >> "/usr/lib64/python3.6/site-packages/_emerge/AsynchronousTask.py", line
44 > >> 30, in start
45 > >>
46 > >> self._start()
47 > >> File "/usr/lib64/python3.6/site-packages/_emerge/BinpkgVerifier.py",
48 > >>
49 > >> line 59, in _start
50 > >>
51 > >> self._digester_exit)
52 > >> File "/usr/lib64/python3.6/site-packages/_emerge/CompositeTask.py",
53 > >>
54 > >> line 113, in _start_task
55 > >>
56 > >> task.start()
57 > >> File
58 > >>
59 > >> "/usr/lib64/python3.6/site-packages/_emerge/AsynchronousTask.py", line
60 > >> 30, in start
61 > >>
62 > >> self._start()
63 > >> File
64 > >>
65 > >> "/usr/lib64/python3.6/site-packages/portage/util/_async/FileDigester.py",
66 > >> line 30, in _start
67 > >>
68 > >> ForkProcess._start(self)
69 > >> File "/usr/lib64/python3.6/site-packages/_emerge/SpawnProcess.py",
70 > >>
71 > >> line 112, in _start
72 > >>
73 > >> retval = self._spawn(self.args, **kwargs)
74 > >> File
75 > >>
76 > >> "/usr/lib64/python3.6/site-packages/portage/util/_async/ForkProcess.py",
77 > >> line 24, in _spawn
78 > >>
79 > >> pid = os.fork()
80 > >> File "/usr/lib64/python3.6/site-packages/portage/__init__.py", line
81 > >>
82 > >> 246, in __call__
83 > >>
84 > >> rval = self._func(*wrapped_args, **wrapped_kwargs)
85 > >>
86 > >> OSError: [Errno 12] Cannot allocate memory
87 > >>
88 > >> What's the recommended course of action here?
89 > >>
90 > >> Log attached.
91 > >
92 > > Suggestion:
93 > > 1) ensure you only have 1 job running and absolutely no parallel builds.
94 > > "--jobs 1" for both emerge and make
95 > >
96 > > 2) get SWAP, preferably on USB stick/harddrive so as not to kill the SD
97 > > card.
98 > >
99 > > Because rasppis are low on memory and they have very specific uses, I tend
100 > > not to bother with Gentoo on them.
101 > >
102 > > --
103 > > Joost
104 >
105 > I started getting a harddisk ready for a swap area, but then decided to
106 > try to emerge @system as a first step (using the -j 1 option this time -
107 > thank you) and that completed, as did then the subsequent emerge of @world.
108
109 You're welcome.
110 Please be aware that SD-cards are really not designed for the type of use a
111 Gentoo update causes. I would definitely put at least the build-dir (usually /
112 var/tmp/portage) on an external drive to avoid excessive wear and tear (and
113 catastrophic failures)
114
115 > It completed successfully (as I interpret it) with only 1 package being
116 > emerged, but it also output these messages:
117 >
118 > WARNING: One or more updates/rebuilds have been skipped due to
119 > a dependency conflict:
120 >
121 > xfce-base/libxfce4ui:0
122 >
123 >
124 > !!! The following binary packages have been ignored due to non
125 > matching USE:
126 >
127 > =sys-devel/clang-9.0.1 python_single_target_python3_6
128 > -python_single_target_python3_7
129 > =sys-devel/clang-8.0.1 python_targets_python2_7
130 >
131 >
132 > !!! The following binary packages have been ignored due to
133 > changed dependencies:
134 >
135 > mail-mta/ssmtp-2.64-r3::gentoo
136 > sys-devel/llvm-9.0.1::gentoo
137 > sys-devel/llvm-8.0.1::gentoo
138 >
139 >
140 > Unclear to me is:
141 >
142 > * why the dependency conflict for xfce-base/libxfce4ui did not
143 > prevent the emerge when dependency conflicts seem to normally do so.
144 > * why the non-matching USE flags didn't cause, this time, the
145 > emerge to break
146 > * What the difference is between:
147 > o - the WARNING above
148 > o - the two !!! events
149 > o - terminating errors in general
150
151 There are 2 "dependency" issues here.
152 The easiest to explain are the binary issues:
153
154 - sys-devel/clang: USE-flags have changed, making the available binaries
155 unusable. (They need to match)
156
157 - mail-mta/ssmtp, sys-devel/llvm : Dependencies have changed, making the
158 available binaries unusable.
159
160 For both of these, a "normal" emerge will be performed.
161
162 As for the "skipped" package, xfce-base/libxfce4ui has not been updated/
163 rebuild due to a conflict. Anything requiring this is also likely not
164 included. (Fix this conflict and finish the update)
165
166 Anything that is not affected by this conflict can and most likely will be
167 updated/rebuild. It is no longer an all-or-nothing situation anymore and I am
168 really happy about that.
169
170 --
171 Joost