1 |
Am Mittwoch, 22. August 2012, 22:16:19 schrieb Jorge Almeida: |
2 |
> On Wed, Aug 22, 2012 at 9:39 PM, Florian Philipp <lists@×××××××××××.net> |
3 |
wrote: |
4 |
> > Am 22.08.2012 20:52, schrieb Jorge Almeida: |
5 |
> > |
6 |
> > This should not happen, especially on such a small archive. I've tried |
7 |
> > `strace xz -t m4-1.4.16.tar.xz` and looked for calls to mmap (e.g. |
8 |
> > memory allocations). They never were larger than 68 MB |
9 |
> > |
10 |
> > Try it yourself. The second parameter in mmap is the allocated size in |
11 |
> > byte. |
12 |
> In the box where it works: |
13 |
> |
14 |
> $ strace -e trace=mmap2 xz -t m4-1.4.16.tar.xz |
15 |
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, |
16 |
> 0) = 0xb7746000 |
17 |
> mmap2(NULL, 134226, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7725000 |
18 |
> mmap2(NULL, 155888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, |
19 |
> 0) = 0xb76fe000 |
20 |
> mmap2(0xb7723000, 8192, PROT_READ|PROT_WRITE, |
21 |
> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24) = 0xb7723000 |
22 |
> mmap2(NULL, 107004, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, |
23 |
> 0) = 0xb76e3000 |
24 |
> mmap2(0xb76fa000, 8192, PROT_READ|PROT_WRITE, |
25 |
> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16) = 0xb76fa000 |
26 |
> mmap2(0xb76fc000, 4604, PROT_READ|PROT_WRITE, |
27 |
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb76fc000 |
28 |
> mmap2(NULL, 1727172, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, |
29 |
> 3, 0) = 0xb753d000 |
30 |
> mmap2(0xb76dd000, 12288, PROT_READ|PROT_WRITE, |
31 |
> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19f) = 0xb76dd000 |
32 |
> mmap2(0xb76e0000, 10948, PROT_READ|PROT_WRITE, |
33 |
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb76e0000 |
34 |
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, |
35 |
> 0) = 0xb753c000 |
36 |
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, |
37 |
> 0) = 0xb753b000 |
38 |
> mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb733b000 |
39 |
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, |
40 |
> 0) = 0xb7745000 |
41 |
> mmap2(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, |
42 |
> -1, 0) = 0xb723a000 |
43 |
> +++ exited with 0 +++ |
44 |
> |
45 |
> |
46 |
> In the other box, in the gentoo chroot: |
47 |
> |
48 |
> # strace -e trace=mmap2 xz -t /usr/portage/distfiles/m4-1.4.16.tar.xz |
49 |
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, |
50 |
> 0) = 0xb779e000 |
51 |
> mmap2(NULL, 12143, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb779b000 |
52 |
> mmap2(NULL, 143600, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, |
53 |
> 0) = 0xb7777000 |
54 |
> mmap2(0xb7799000, 8192, PROT_READ|PROT_WRITE, |
55 |
> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21) = 0xb7799000 |
56 |
> mmap2(NULL, 1448488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, |
57 |
> 3, 0) = 0xb7615000 |
58 |
> mmap2(0xb7771000, 12288, PROT_READ|PROT_WRITE, |
59 |
> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15c) = 0xb7771000 |
60 |
> mmap2(0xb7774000, 10792, PROT_READ|PROT_WRITE, |
61 |
> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7774000 |
62 |
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, |
63 |
> 0) = 0xb7614000 |
64 |
> mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7414000 |
65 |
> mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x102a) = 0xb779d000 |
66 |
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, |
67 |
> 0) = 0xb779c000 |
68 |
> mmap2(NULL, 67112960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, |
69 |
> -1, 0) = -1 ENOMEM (Cannot allocate memory) |
70 |
> mmap2(NULL, 67244032, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, |
71 |
> -1, 0) = -1 ENOMEM (Cannot allocate memory) |
72 |
> mmap2(NULL, 2097152, PROT_NONE, |
73 |
> MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0xb7214000 |
74 |
> mmap2(NULL, 67112960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, |
75 |
> -1, 0) = -1 ENOMEM (Cannot allocate memory) |
76 |
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, |
77 |
> 0) = 0xb779c000 |
78 |
> xz: /usr/portage/distfiles/m4-1.4.16.tar.xz: Cannot allocate memory |
79 |
> +++ exited with 1 +++ |
80 |
> |
81 |
> |
82 |
> Thanks, |
83 |
> |
84 |
> Jorge Almeida |
85 |
|
86 |
|
87 |
maybe a memory fragmentation problem? It tries to allocate 65mb continous |
88 |
chunk - and can't find one? |
89 |
-- |
90 |
#163933 |