Redis: [ABSTURZ] Redis-Server auf Apple Silicon M1 kann nicht als Nicht-Root gestartet werden

Erstellt am 18. Nov. 2020  ·  23Kommentare  ·  Quelle: redis/redis

Unfallbericht

Fügen Sie das vollständige Absturzprotokoll zwischen den Anführungszeichen unten ein. Bitte fügen Sie ein paar Zeilen aus dem Protokoll vor dem Absturzbericht hinzu, um einen Kontext zu schaffen.

nick@nicks-mba bin % redis-server
4428:C 17 Nov 2020 21:38:11.216 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4428:C 17 Nov 2020 21:38:11.216 # Redis version=6.0.9, bits=64, commit=00000000, modified=0, pid=4428, just started
4428:C 17 Nov 2020 21:38:11.216 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
4428:M 17 Nov 2020 21:38:11.218 * Increased maximum number of open files to 10032 (it was originally set to 256).

=== REDIS BUG REPORT START: Cut & paste starting from here ===
4428:M 17 Nov 2020 21:38:11.221 # Redis 6.0.9 crashed by signal: 11, si_code: 2
4428:M 17 Nov 2020 21:38:11.221 # Crashed running the instruction at: 0x7fff203b9430
4428:M 17 Nov 2020 21:38:11.221 # Accessing address: 0x306018000
4428:M 17 Nov 2020 21:38:11.221 # Killed by PID: 0, UID: 0
4428:M 17 Nov 2020 21:38:11.221 # Failed assertion: <no assertion failed> (<no file>:0)

------ STACK TRACE ------
EIP:
0   libsystem_platform.dylib            0x00007fff203b9430 _platform_memset$VARIANT$Rosetta + 108

Backtrace:
0   redis-server                        0x0000000100eecbb7 logStackTrace + 110
1   redis-server                        0x0000000100eecfd5 sigsegvHandler + 271
2   libsystem_platform.dylib            0x00007fff203b6d7d _sigtramp + 29
3   libsystem_malloc.dylib              0x00007fff2019c7aa tiny_free_no_lock + 1116
4   redis-server                        0x0000000100f3d0c3 luaD_call + 97
5   ???                                 0x0000000032aaaba2 0x0 + 850045858

------ INFO OUTPUT ------
# Server
redis_version:6.0.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:ec508acaad782189
redis_mode:standalone
os:Darwin 20.1.0 x86_64
arch_bits:64
multiplexing_api:kqueue
atomicvar_api:atomic-builtin
gcc_version:4.2.1
process_id:4428
run_id:fc5670f4b55a97402bd9c0257ddf857c0f4879c7
tcp_port:6379
uptime_in_seconds:0
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:11831571
executable:/usr/local/Cellar/redis/6.0.9/bin/redis-server
config_file:
io_threads_active:0

# Clients
connected_clients:0
client_recent_max_input_buffer:0
client_recent_max_output_buffer:0
blocked_clients:0
tracking_clients:0
clients_in_timeout_table:0

# Memory
used_memory:1018304
used_memory_human:994.44K
used_memory_rss:0
used_memory_rss_human:0B
used_memory_peak:1018304
used_memory_peak_human:994.44K
used_memory_peak_perc:inf%
used_memory_overhead:0
used_memory_startup:0
used_memory_dataset:1018304
used_memory_dataset_perc:100.00%
allocator_allocated:0
allocator_active:0
allocator_resident:0
total_system_memory:17179869184
total_system_memory_human:16.00G
used_memory_lua:37888
used_memory_lua_human:37.00K
used_memory_scripts:0
used_memory_scripts_human:0B
number_of_cached_scripts:0
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:nan
allocator_frag_bytes:0
allocator_rss_ratio:nan
allocator_rss_bytes:0
rss_overhead_ratio:nan
rss_overhead_bytes:0
mem_fragmentation_ratio:nan
mem_fragmentation_bytes:0
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:0
mem_aof_buffer:0
mem_allocator:libc
active_defrag_running:0
lazyfree_pending_objects:0

# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1605667091
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0
module_fork_in_progress:0
module_fork_last_cow_size:0

# Stats
total_connections_received:0
total_commands_processed:0
instantaneous_ops_per_sec:0
total_net_input_bytes:0
total_net_output_bytes:0
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
expired_stale_perc:0.00
expired_time_cap_reached_count:0
expire_cycle_cpu_milliseconds:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
migrate_cached_sockets:0
slave_expires_tracked_keys:0
active_defrag_hits:0
active_defrag_misses:0
active_defrag_key_hits:0
active_defrag_key_misses:0
tracking_total_keys:0
tracking_total_items:0
tracking_total_prefixes:0
unexpected_error_replies:0
total_reads_processed:0
total_writes_processed:0
io_threaded_reads_processed:0
io_threaded_writes_processed:0

# Replication
role:master
connected_slaves:0
master_replid:46fd7b1f73d20d31809d463ca9fa6e83dd8544ff
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

# CPU
used_cpu_sys:0.007195
used_cpu_user:0.014509
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000

# Modules

# Commandstats

# Cluster
cluster_enabled:0

# Keyspace

------ CLIENT LIST OUTPUT ------

------ REGISTERS ------
4428:M 17 Nov 2020 21:38:11.222 #
RAX:0000000306017b80 RBX:0000000000000013
RCX:0000000306018000 RDX:00007fd6be3ed8ce
RDI:0000000306017b38 RSI:0000000000000000
RBP:0000000306017910 RSP:0000000306017728
R8 :0000000000000000 R9 :00000003060177e0
R10:0000000100f587b3 R11:ffffffffffffffff
R12:00000003060179b8 R13:00000000000000ff
R14:0000000100f59127 R15:0000000100f89740
RIP:00007fff203b9430 EFL:0000000000000202
CS :000000000000002b FS:0000000000000000  GS:0000000000000000
4428:M 17 Nov 2020 21:38:11.222 # (0000000306017737) -> 0000000109a3ea00
4428:M 17 Nov 2020 21:38:11.222 # (0000000306017736) -> 0000000000000006
4428:M 17 Nov 2020 21:38:11.222 # (0000000306017735) -> 0000000000000000
4428:M 17 Nov 2020 21:38:11.222 # (0000000306017734) -> 0000000000002800
4428:M 17 Nov 2020 21:38:11.222 # (0000000306017733) -> 0000000000000000
4428:M 17 Nov 2020 21:38:11.222 # (0000000306017732) -> 00007fff2019a020
4428:M 17 Nov 2020 21:38:11.222 # (0000000306017731) -> 0000000100f67bca
4428:M 17 Nov 2020 21:38:11.222 # (0000000306017730) -> 0000000100efb4d6
4428:M 17 Nov 2020 21:38:11.222 # (000000030601772f) -> 00000003060178a0
4428:M 17 Nov 2020 21:38:11.222 # (000000030601772e) -> 00007fd9c4400000
4428:M 17 Nov 2020 21:38:11.222 # (000000030601772d) -> 0000000100f5ad38
4428:M 17 Nov 2020 21:38:11.222 # (000000030601772c) -> 00000000000018eb
4428:M 17 Nov 2020 21:38:11.222 # (000000030601772b) -> 0000000100f55bcd
4428:M 17 Nov 2020 21:38:11.222 # (000000030601772a) -> 0000000306017b38
4428:M 17 Nov 2020 21:38:11.223 # (0000000306017729) -> 00007fd9c445a3b0
4428:M 17 Nov 2020 21:38:11.223 # (0000000306017728) -> 0000000100f0bebb

------ MODULES INFO OUTPUT ------

------ DUMPING CODE AROUND EIP ------
Symbol: _platform_memset$VARIANT$Rosetta (base: 0x7fff203b93c4)
Module: /usr/lib/system/libsystem_platform.dylib (base 0x7fff203b3000)
$ xxd -r -p /tmp/dump.hex /tmp/dump.bin
$ objdump --adjust-vma=0x7fff203b93c4 -D -b binary -m i386:x86-64 /tmp/dump.bin
------
4428:M 17 Nov 2020 21:38:11.223 # dump of function (hexdump of 236 bytes):
81e6ff00000048b90101010101010101480faff14889f94883fa400f82360100004881fa008000000f82a00000000faef0480fc337480fc37708480fc37710480fc37718480fc37720480fc37728480fc37730480fc37738488d4f404883e1c04801fa488d41404829c27631480fc331480fc37108480fc37110480fc37118480fc37120480fc37128480fc37130480fc371384883c1404883ea4077cf4801d1480fc331480fc37108480fc37110480fc37118480fc37120480fc37128480fc37130480fc371380faef84889f8c3488937488977084889771048897718488977204889772848897730488977

=== REDIS BUG REPORT END. Make sure to include from START to END. ===

Zusätzliche Informationen

Betriebssystemverteilung und -version
Schritte zur Reproduktion (falls vorhanden)

  1. Installiert über von Rosetta ausgeführtes Homebrew arch -x86_64 brew install redis .
  2. Führen Sie redis-server oder arch -x86_64 redis-server als normaler Benutzer aus.
  3. Absturz.

Läuft ohne Probleme mit sudo .

Hilfreichster Kommentar

Dies ist mir auch aufgefallen, als ich versuchte, Redis mit Homebrew auf einem M1-Mac zu verwenden. Homebrew meldet, dass der Server korrekt gestartet wurde, dies jedoch nicht.

Das Ausführen von redis-server schlägt fehl, aber das Ausführen von sudo redis-server funktioniert. Dies führt nach der Übersetzung die Binärdatei x86_64 aus.

Für Leute, die diesen Thread vielleicht finden, besteht eine "Abhilfe" in der Zwischenzeit darin, den Redis-Server wie folgt manuell zu starten:

sudo redis-server --daemonize yes

Alle 23 Kommentare

@qwertywelch vielen Dank für die Übermittlung dieses Berichts.

Ich vermute, dass si_code von 2 SEGV_ACCERR bedeutet. Können Sie dies bitte bestätigen (suchen Sie es in Ihrem /usr/include oder gleichwertig).

der Stack-Trace sieht etwas seltsam aus, können Sie versuchen, Redis mit Debug-Symbolen und ohne Optimierungen ( make noopt ) zu erstellen und sehen, ob wir einen besseren Stack-Trace erhalten?

@oranagra Das ist vielleicht das, wonach Sie suchen?

Process:               redis-server [4212]
Path:                  /usr/local/Cellar/redis/6.0.9/bin/redis-server
Identifier:            redis-server
Version:               ???
Code Type:             X86-64 (Translated)
Parent Process:        ??? [1]
Responsible:           redis-server [4212]
User ID:               501

Date/Time:             2020-11-17 21:35:24.481 -0500
OS Version:            macOS 11.0.1 (20B29)
Report Version:        12
Anonymous UUID:        52446E17-AB34-409E-A3F6-F73D0E0E79BF


Time Awake Since Boot: 340 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000305c26000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   redis-server [4212]

VM Regions Near 0x305c26000:
    Stack                       30542a000-305c26000    [ 8176K] rw-/rwx SM=PRV  
--> 
    commpage (reserved)         fc0000000-1000000000   [  1.0G] ---/--- SM=NUL  reserved VM address space (unallocated)

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   ???                             0x00007ffe95c6a9bc ???
1   libsystem_kernel.dylib          0x00007fff20343fde __kill + 10
2   libsystem_platform.dylib        0x00007fff203b6d7d _sigtramp + 29
3   libsystem_malloc.dylib          0x00007fff2019c7aa tiny_free_no_lock + 1116
4   ???                             000000000000000000 0 + 0
5   libsystem_c.dylib               0x00007fff2027f729 fopen + 116
6                                   0x0000000100c06045 createPidFile + 53
7                                   0x0000000100c06f9d main + 1163
8   libdyld.dylib                   0x00007fff2038d631 start + 1

Thread 1:: com.apple.rosetta.exceptionserver
0   runtime                         0x00007ffdffe28cb8 0x7ffdffe26000 + 11448
1   runtime                         0x00007ffdffe32ee0 0x7ffdffe26000 + 52960
2   runtime                         0x00007ffdffe33c3c 0x7ffdffe26000 + 56380

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x0000000000000415  rcx: 0x0000000000000000  rdx: 0x0000000000000001
  rdi: 0x0000000000000000  rsi: 0x00007fff203b93c4  rbp: 0x00007fff88aba9d8  rsp: 0x00000000000130a8
   r8: 0x0000001500000000   r9: 0x00007fff88aba9d8  r10: 0x0000000000000415  r11: 0x00007fff20343fc9
  r12: 0x00000000000000ec  r13: 0x00007fb01c809005  r14: 0x000000000000000b  r15: 0x00000001097da088
  rip: <unavailable>  rfl: 0x0000000000000283


Binary Images:
       0x100bf7000 -        0x100ccafff + (0) <29F294FA-7055-3ECB-B261-2474750DF6D1> 
       0x109186000 -        0x1091d5fff +libssl.1.1.dylib (0) <2BA6F0C6-7BAB-30E7-88CA-802EB05A2C10> /usr/local/opt/[email protected]/lib/libssl.1.1.dylib
       0x10929c000 -        0x10945bfff +libcrypto.1.1.dylib (0) <C47A045A-5436-3B19-A48D-4A2FE13CBBF9> /usr/local/opt/[email protected]/lib/libcrypto.1.1.dylib
       0x200f17000 -        0x200fb2fff  dyld (832.7.1) <2705F0D8-C104-3DE9-BEB5-B1EF6E28656D> /usr/lib/dyld
    0x7ffdffe26000 -     0x7ffdffe99fff +runtime (203.1.3) <32F67E63-80F9-3251-A012-C2AD43E420BE> /Library/Apple/*/runtime
    0x7fff200aa000 -     0x7fff200abfff  libsystem_blocks.dylib (78) <83E2F888-F4C1-3181-B21B-136A0D7293DD> /usr/lib/system/libsystem_blocks.dylib
    0x7fff200ac000 -     0x7fff200e1fff  libxpc.dylib (2038.40.38) <DC50F7DD-1C4B-3BD2-A54D-C5D7D97A3718> /usr/lib/system/libxpc.dylib
    0x7fff200e2000 -     0x7fff200f9fff  libsystem_trace.dylib (1277.50.1) <94196441-5456-342D-84D1-C60A9249D273> /usr/lib/system/libsystem_trace.dylib
    0x7fff200fa000 -     0x7fff20195fff  libcorecrypto.dylib (1000.40.21) <2FA5C1BD-F41C-3FCF-B1FA-7BED6E19ABEE> /usr/lib/system/libcorecrypto.dylib
    0x7fff20196000 -     0x7fff201c2fff  libsystem_malloc.dylib (317.40.8) <3688DBCE-2FFD-3F98-B12B-69ABE231908D> /usr/lib/system/libsystem_malloc.dylib
    0x7fff201c3000 -     0x7fff20207fff  libdispatch.dylib (1271.40.12) <C55547DC-A05B-34A1-BD41-D54948D8F57F> /usr/lib/system/libdispatch.dylib
    0x7fff20208000 -     0x7fff20241fff  libobjc.A.dylib (818.2) <009C043E-EA6B-38AF-8ABD-C57E1B42A0EE> /usr/lib/libobjc.A.dylib
    0x7fff20242000 -     0x7fff20244fff  libsystem_featureflags.dylib (28.40.2) <3E1E8F98-E791-301D-909F-4CA205C94D1A> /usr/lib/system/libsystem_featureflags.dylib
    0x7fff20245000 -     0x7fff202cdfff  libsystem_c.dylib (1439.40.11) <8D791F3A-4848-302F-88CD-46D91DE73127> /usr/lib/system/libsystem_c.dylib
    0x7fff202ce000 -     0x7fff20323fff  libc++.1.dylib (904.4) <E7F465AC-C8FF-31DB-8EC4-7EBBA7468EB5> /usr/lib/libc++.1.dylib
    0x7fff20324000 -     0x7fff2033cfff  libc++abi.dylib (904.4) <253848B5-ED35-3202-8593-5DCC763A8192> /usr/lib/libc++abi.dylib
    0x7fff2033d000 -     0x7fff2036bfff  libsystem_kernel.dylib (7195.50.7) <41068F5C-74E3-3C98-9256-6A18364FB5BA> /usr/lib/system/libsystem_kernel.dylib
    0x7fff2036c000 -     0x7fff20377fff  libsystem_pthread.dylib (454.40.3) <78072EC6-2257-361A-AAF5-4A3C1832B5EB> /usr/lib/system/libsystem_pthread.dylib
    0x7fff20378000 -     0x7fff203b2fff  libdyld.dylib (832.7.1) <0C66AB9F-E22C-3286-B76B-DA4008698CD2> /usr/lib/system/libdyld.dylib
    0x7fff203b3000 -     0x7fff203bcfff  libsystem_platform.dylib (254.40.4) <6C05D209-129A-373A-A90D-CC27AB18C091> /usr/lib/system/libsystem_platform.dylib
    0x7fff203bd000 -     0x7fff203e8fff  libsystem_info.dylib (542.40.3) <90DDEF9D-9DBA-3599-A9DD-A7F730AE945F> /usr/lib/system/libsystem_info.dylib
    0x7fff22706000 -     0x7fff2270ffff  libsystem_darwin.dylib (1439.40.11) <3BD9046F-FAED-3FD9-8191-49A4618555A3> /usr/lib/system/libsystem_darwin.dylib
    0x7fff22b20000 -     0x7fff22b2bfff  libsystem_notify.dylib (279.40.4) <73D358B2-6C2D-33DF-975C-BE9EE5F45A0F> /usr/lib/system/libsystem_notify.dylib
    0x7fff24a75000 -     0x7fff24a83fff  libsystem_networkextension.dylib (1295.40.29) <84A5011E-1511-30C7-86D8-514CFA59EF42> /usr/lib/system/libsystem_networkextension.dylib
    0x7fff24ae1000 -     0x7fff24af7fff  libsystem_asl.dylib (385) <EB8BA94D-1B45-322E-9D26-272872423807> /usr/lib/system/libsystem_asl.dylib
    0x7fff26207000 -     0x7fff2620efff  libsystem_symptoms.dylib (1431.40.36) <81345ED1-342F-347F-B979-39846E607C8C> /usr/lib/system/libsystem_symptoms.dylib
    0x7fff28531000 -     0x7fff28541fff  libsystem_containermanager.dylib (318.41.1) <BF178091-2151-3462-AB4F-A2E111650BA2> /usr/lib/system/libsystem_containermanager.dylib
    0x7fff29247000 -     0x7fff2924afff  libsystem_configuration.dylib (1109.40.9) <EA408233-7EA5-33B5-B099-E9609DD3A0FF> /usr/lib/system/libsystem_configuration.dylib
    0x7fff2924b000 -     0x7fff2924ffff  libsystem_sandbox.dylib (1441.40.38) <349F71A1-4C7C-3AE0-8A1B-B95CCBB2327F> /usr/lib/system/libsystem_sandbox.dylib
    0x7fff29e5a000 -     0x7fff29e5cfff  libquarantine.dylib (119.40.2) <3DD7F9EE-9B9A-3896-A8CC-4D5BE49385AE> /usr/lib/system/libquarantine.dylib
    0x7fff2a3dc000 -     0x7fff2a3e0fff  libsystem_coreservices.dylib (127) <670DDFEB-8100-3C51-BC96-76BD46A21DF6> /usr/lib/system/libsystem_coreservices.dylib
    0x7fff2a5f7000 -     0x7fff2a642fff  libsystem_m.dylib (3186.40.2) <F1481BE9-A26B-3C4C-90BB-4EB46DFA1DE9> /usr/lib/system/libsystem_m.dylib
    0x7fff2a644000 -     0x7fff2a649fff  libmacho.dylib (973.4) <F2E3F7A6-B15A-30ED-A6AD-4EFEC37CF3E7> /usr/lib/system/libmacho.dylib
    0x7fff2a666000 -     0x7fff2a671fff  libcommonCrypto.dylib (60178.40.2) <66E10FDF-896D-35F4-B9A8-8EE9400AC23A> /usr/lib/system/libcommonCrypto.dylib
    0x7fff2a672000 -     0x7fff2a67cfff  libunwind.dylib (200.10) <BD13DE19-15F8-3982-ACCB-CD8C036D5D2B> /usr/lib/system/libunwind.dylib
    0x7fff2a67d000 -     0x7fff2a684fff  liboah.dylib (203.1.3) <5EC28751-3BE8-3BB7-9DBE-305225CBD41B> /usr/lib/liboah.dylib
    0x7fff2a685000 -     0x7fff2a68ffff  libcopyfile.dylib (173.40.2) <17A9CD2E-0527-3FF7-9CFA-57B30133DFB5> /usr/lib/system/libcopyfile.dylib
    0x7fff2a690000 -     0x7fff2a697fff  libcompiler_rt.dylib (102.2) <FE958653-7FEC-3ADD-9AC0-A386E47208CF> /usr/lib/system/libcompiler_rt.dylib
    0x7fff2a698000 -     0x7fff2a69afff  libsystem_collections.dylib (1439.40.11) <31C10DA5-F9B8-36E4-B859-8F6B845FF65D> /usr/lib/system/libsystem_collections.dylib
    0x7fff2a69b000 -     0x7fff2a69dfff  libsystem_secinit.dylib (87.40.10) <BB2A70F5-BECC-34BD-90FE-14D31C5FD80D> /usr/lib/system/libsystem_secinit.dylib
    0x7fff2a69e000 -     0x7fff2a6a0fff  libremovefile.dylib (49.40.3) <24CE2291-AEB3-30C9-94E8-535AA6E9C6F2> /usr/lib/system/libremovefile.dylib
    0x7fff2a6a1000 -     0x7fff2a6a1fff  libkeymgr.dylib (31) <B47F66C0-27F4-3B77-BAA0-85E895A7421D> /usr/lib/system/libkeymgr.dylib
    0x7fff2a6a2000 -     0x7fff2a6a9fff  libsystem_dnssd.dylib (1310.40.42) <F54EC6FB-DEC3-3DA8-A749-4892F50D1F08> /usr/lib/system/libsystem_dnssd.dylib
    0x7fff2a6aa000 -     0x7fff2a6affff  libcache.dylib (83) <C83C4423-D12A-32A0-875D-81450DF40F42> /usr/lib/system/libcache.dylib
    0x7fff2a6b0000 -     0x7fff2a6b1fff  libSystem.B.dylib (1292.50.1) <14E3BB7B-B95F-3700-8D12-B9B2012C0AF8> /usr/lib/libSystem.B.dylib
    0x7fff2dc37000 -     0x7fff2dc37fff  liblaunch.dylib (2038.40.38) <D71781B5-4034-3349-BBE5-4B796CD3629A> /usr/lib/system/liblaunch.dylib
    0x7fff300d5000 -     0x7fff300d5fff  libsystem_product_info_filter.dylib (8.40.1) <FF59B842-1290-3C4A-9015-AC972563406E> /usr/lib/system/libsystem_product_info_filter.dylib

Translated Code Information:
  tmp0: 0xffffffffffffffff tmp1: 0x00007ffe95c6a990 tmp2: 0x0000000100ecc500


External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 155
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=515.0M resident=0K(0%) swapped_out_or_unallocated=515.0M(100%)
Writable regions: Total=295.6M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=295.6M(100%)

                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Kernel Alloc Once                    8K        1 
MALLOC                            26.1M       11 
MALLOC guard page                   96K        4 
MALLOC_MEDIUM (reserved)         120.0M        1         reserved VM address space (unallocated)
Rosetta Arena                     2048K        1 
Rosetta Generic                    720K      177 
Rosetta IndirectBranch              32K        1 
Rosetta JIT                      128.0M        1 
Rosetta Return Stack                20K        2 
Rosetta Thread Context              20K        2 
Stack                             8176K        1 
Stack Guard                       56.0M        1 
VM_ALLOCATE                       8640K        4 
__DATA                             661K       49 
__DATA_CONST                       466K       36 
__DATA_DIRTY                        58K       21 
__LINKEDIT                       506.8M       11 
__OBJC_RO                         61.0M        1 
__OBJC_RW                         2466K        2 
__TEXT                            8420K       47 
mapped file                        4.1G       81 
shared memory                       32K        2 
unshared pmap                     2048K        1 
===========                     =======  ======= 
TOTAL                              5.0G      458 
TOTAL, minus reserved VM space     4.9G      458 

Ich werde versuchen, einen Debug-Build zu erstellen.

ok, dieser Stacktrace sieht viel besser aus createPidFile -> fopen .
der vorherige zeigte luaD_call -> tiny_free_no_lock
Vielleicht wird etwas anderes enthüllt, wenn es unter strace wird? bitte versuche.
Ich sehe nicht, wie alles, was wir in Redis tun, dazu führen kann, dass fopen einen Segmentierungsfehler verursacht.
es sei denn, der Dateiname ist Müll, aber warum sollte es dann mit sudo ?

Es gelingt mit sudo

Auch hier schlage ich vor, es mit strace auszuführen, um zu versuchen, mehr Details zu enthüllen.

Ich sehe wirklich nicht, wie ein Fehler in Redis zu einem Segfault in fopen führen kann, es sei denn, der Dateiname ist Müll, und wenn das der Fall wäre, wäre es auch mit sudo passiert.

Wenn ich das richtig verstehe, handelt es sich um eine x86_64-Binärdatei, die nach der Übersetzung auf M1 arm64 ausgeführt wird, sodass es theoretisch auch ein Problem mit dem Übersetzungsprozess sein könnte. Nicht sehr optimistisch, was strace in diesem Fall angeht, kann es erforderlich sein, dass jemand einen Schritt weiter geht, um dies auf der besagten Plattform zu debuggen.

@Developer-Ecosystem-Engineering vielleicht kennen Sie jemanden, der ein mögliches Problem mit dem Übersetzer untersuchen kann.

Dies ist mir auch aufgefallen, als ich versuchte, Redis mit Homebrew auf einem M1-Mac zu verwenden. Homebrew meldet, dass der Server korrekt gestartet wurde, dies jedoch nicht.

Das Ausführen von redis-server schlägt fehl, aber das Ausführen von sudo redis-server funktioniert. Dies führt nach der Übersetzung die Binärdatei x86_64 aus.

Für Leute, die diesen Thread vielleicht finden, besteht eine "Abhilfe" in der Zwischenzeit darin, den Redis-Server wie folgt manuell zu starten:

sudo redis-server --daemonize yes

@Developer-Ecosystem-Engineering vielleicht kennen Sie jemanden, der ein mögliches Problem mit dem Übersetzer untersuchen kann.

Werfen Sie einen Blick darauf, kann es aufgrund der Jahreszeit eine Weile dauern.

Reproduziert dies nicht, funktioniert so oder so gut sudo oder ohne. Ich sehe, dass mindestens zwei Leute darüber berichten. War das ein MacBook Pro? Mac-Mini? Ein Feedback an Apple ist der ideale Weg, um eine Untersuchung einzuleiten, da dies der Redis Issue Tracker ist.

Bei mir passierte es auf einem 13" M1 MacBook Pro.

Gleiches hier - 13" M1 MBP. Ich sehe, dass es sowohl als Root als auch als Benutzer über brew services (dh launchd) fehlschlägt, und genauso wie als Benutzer, wenn redis-server in der CLI ausgeführt wird.
Ich habe versucht zu sehen, ob ich dtruss dazu bringen könnte, etwas zu tun, aber es kann anscheinend keine Prozesse instrumentieren, die in Rosetta laufen.

Ich habe es gestern über die Arm-Version von Homebrew versucht und der Neustart des Dienstes funktioniert. Allerdings habe ich vor zwei Tagen das gleiche Problem.

Es wurde reproduziert, glaube nicht, dass es im Moment mit unserer ursprünglichen PR zusammenhängt, aber es wird noch daran gearbeitet, danke.

Dies scheint ein seit langem bestehender Fehler in Redis zu sein. Es kann auf Intel- oder Apple-Silizium-basierten Macs reproduziert werden und steht in keinem Zusammenhang mit unserem vorherigen Beitrag.

Wenn _redis-server_ startet, merkt es sich, wo sich argv[0] befindet und wie weit es, die anderen args und env vars reichen [1]. Später überschreibt es dies, um anzupassen, was in Tools wie _ps_ [2] angezeigt wird. Bei der Implementierung wird davon ausgegangen, dass argv[0], die anderen args und env vars alle zusammenhängend gespeichert werden, eine Zeichenfolge nach der anderen. Es geht also über jede arg und env var und verfolgt die letzte Adresse für alle Strings.

Das Problem tritt auf, wenn man eine neue env var hinzufügt, bevor die Initialisierung start / end von args und env vars stattfindet. Die neue env var kann in einer anderen Region zugewiesen werden, was die Annahme widerlegt, dass sie alle zusammen sind. Wenn die neue env var in einer niedrigeren Speicheradresse zugewiesen wird, wird kein Problem ignoriert. Wenn andererseits die neue env var einer höheren Speicheradresse zugewiesen wird, aktualisiert sie den Begriff des Pufferendes. Später, wenn Redis in den Puffer memset / bzero wechselt, ist die Längenberechnung viel zu groß und wird vom Ende des Stapels von Thread 0 abgeschrieben.

Warum _sudo_ das Problem umgeht, ändert es die env-Variablen! Warum taucht es jetzt häufiger auf Apple-Silizium auf? Der Stack für Thread 0 auf Apple-Silizium hat oben viel offenen Adressraum.

Vor ein paar Tagen wurde ein ähnliches Problem unter https://github.com/redis/redis/pull/8088 diagnostiziert

[1] https://github.com/redis/redis/blob/2f41a3856845265ffc6cc3a35524883a8690cff7/src/setproctitle.c#L182
[2] https://github.com/redis/redis/blob/2f41a3856845265ffc6cc3a35524883a8690cff7/src/setproctitle.c#L251

@Developer-Ecosystem-Engineering danke für diese ausführliche Analyse.
@yossigo kannst du bitte damit umgehen.

Ein möglicher Fix in #8150 wurde veröffentlicht, aber kann jemand, der dieses Problem reproduzieren kann, bestätigen, dass es tatsächlich gelöst ist? Vielen Dank!

@yossigo hat diesen Thread gefunden, nachdem ich vor einer Stunde mit dem neuen m1-Macbook darauf gestoßen bin. Dein Commit heruntergezogen, alles lokal erstellt und hier sieht es gut aus. Gute Arbeit!

@yossigo Ich konnte es auch mit Ihrem Fix auf einem m1-Macbook mit Rosetta erstellen und als Nicht-Root ausführen.

Mir sind jedoch einige fehlgeschlagene Tests aufgefallen (aber das hängt wahrscheinlich nicht damit zusammen) und ich konnte es nicht ohne Rosetta bauen. Gibt es Pläne zur Unterstützung von m1-Builds?

Danke @erf . Können Sie bitte weitere Informationen zu den Build-Fehlern und fehlgeschlagenen Tests posten?

@yossigo Ich konnte Redis jetzt sowohl mit als auch ohne Rosetta erstellen (indem ich iTerm2 mit aktiviertem using Rosetta öffnete). Das Testergebnis war das gleiche.

Siehe angehängte Datei make_test_log.txt .

@erf Dies sind falsche unstable . Auch das ursprüngliche Problem ist jetzt zusammengeführt, sodass unstable unter macOS/M1 in Ordnung sein sollte.

Warum _sudo_ das Problem umgeht, ändert es die env-Variablen!

Aha! Das hat mir geholfen, diesen einfachen Workaround zu finden:

env -i /usr/local/bin/redis-server --daemonize yes

(Ja, ich habe gerade einen neuen M1-Mac bekommen.)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen