Skip to content
This repository has been archived by the owner on Feb 20, 2021. It is now read-only.

Redis cannot save #407

Closed
Harachie opened this issue Feb 12, 2016 · 65 comments
Closed

Redis cannot save #407

Harachie opened this issue Feb 12, 2016 · 65 comments

Comments

@Harachie
Copy link

Hi,

Redis cannot save on one of our servers after some days of runnig perfectly fine (and being able to save).
After some time the message "MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk" appears.
After a restart of Redis everything is running fine again (can also save via "save" and rewrite via "bgrewriteaof").

In the log files this error occurs every 5 minutes (when trying to save).

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[12456] 12 Feb 14:12:21.207 # Redis version: 3.0.500
[12456] 12 Feb 14:12:21.207 # --- EXCEPTION_ACCESS_VIOLATION
[12456] 12 Feb 14:12:21.207 # --- STACK TRACE
redis-server.exe!LogStackTrace(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:95)(0x0012E7B0, 0x0012FF90, 0x00000001, 0x40123730)
redis-server.exe!UnhandledExceptiontHandler(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x00000001, 0x00000000, 0x00000001, 0xEC5DB977)
kernel32.dll!UnhandledExceptionFilter(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x0012E7B0, 0x00000006, 0x00000000, 0x00000001)
ntdll.dll!MD5Final(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0xE6083A8F, 0x40129C28, 0x00000000)
ntdll.dll!_C_specific_handler(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x0012FF90, 0x0012FF90, 0x77AD2DD0)
ntdll.dll!RtlDecodePointer(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x773BDDA0, 0x00012F00, 0xEC5DF31D)
ntdll.dll!RtlUnwindEx(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0x0012EF00, 0x00000000, 0x00000000)
ntdll.dll!KiUserExceptionDispatcher(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x00000004, 0x4014F210, 0x00000001, 0x4009FCDE)
redis-server.exe!rioFileWrite(c:\release\redis\src\rio.c:118)(0x0012F65E, 0x00005C09, 0x00005C09, 0x0012F6E0)
redis-server.exe!rioWrite(c:\release\redis\src\rio.h:100)(0x00000005, 0xE7BFA008, 0x00005C09, 0xE7BFA008)
redis-server.exe!rdbSaveRawString(c:\release\redis\src\rdb.c:305)(0x773D0215, 0x00000001, 0x02807040, 0xDC3F90DD)
redis-server.exe!rdbSaveObject(c:\release\redis\src\rdb.c:515)(0x0012F6E0, 0x00000001, 0xE58F6560, 0xE58F6560)
redis-server.exe!rdbSaveRio(c:\release\redis\src\rdb.c:694)(0x4014F210, 0x00E70000, 0x00000005, 0x01272754)
redis-server.exe!rdbSave(c:\release\redis\src\rdb.c:758)(0x00E70000, 0x56B76EF1, 0x00E70000, 0x00000005)
redis-server.exe!QForkChildInit(c:\release\redis\src\win32_interop\win32_qfork.cpp:337)(0x00000005, 0x00000000, 0x0029DFF0, 0x00000005)
redis-server.exe!QForkStartup(c:\release\redis\src\win32_interop\win32_qfork.cpp:515)(0x00000006, 0x00000000, 0x00000000, 0x0029B760)
redis-server.exe!main(c:\release\redis\src\win32_interop\win32_qfork.cpp:1240)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
redis-server.exe!__tmainCRTStartup(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
kernel32.dll!BaseThreadInitThunk(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[12456] 12 Feb 14:12:21.250 # --- INFO OUTPUT

I could not find any bug report related to the 501 release, so is this fixed or still a problem?

Kind regards,
Bastian Kröger

@enricogior
Copy link

Hi @Harachie
3.0.501 fixes a major bug that may also be the cause of the problem you are experiencing.
So I strongly suggest to upgrade.
Thank you.

@Harachie
Copy link
Author

Hi @enricogior ,

thanks for your fast response. I will replace the version asap and let you know when encountering the issue again.

Thanks,
Bastian

@Harachie
Copy link
Author

Hi @enricogior ,

unfortunately the update did not solve the problem. The same problem remains (though with different stack trace).

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[21168] 15 Feb 11:43:08.734 # Redis version: 3.0.501
[21168] 15 Feb 11:43:08.734 # --- EXCEPTION_ACCESS_VIOLATION
[21168] 15 Feb 11:43:08.734 # --- STACK TRACE
redis-server.exe!((null):0)(0x0012E7B0, 0x0012FF90, 0x00000001, 0x40124730)
redis-server.exe!((null):0)(0x00000001, 0x00000000, 0x00000001, 0xE611663C)
kernel32.dll!UnhandledExceptionFilter((null):0)(0x0012E7B0, 0x00000006, 0x00000000, 0x00000001)
ntdll.dll!MD5Final((null):0)(0x0012F3F0, 0xE4B29145, 0x4012AC28, 0x00000000)
ntdll.dll!_C_specific_handler((null):0)(0x00130000, 0x0012FF90, 0x0012FF90, 0x77AD2DD0)
ntdll.dll!RtlDecodePointer((null):0)(0x00130000, 0x773BDDA0, 0x00012F00, 0xE3E1511E)
ntdll.dll!RtlUnwindEx((null):0)(0x0012F3F0, 0x0012EF00, 0x00000000, 0x00000000)
ntdll.dll!KiUserExceptionDispatcher((null):0)(0x00000002, 0x40150210, 0x00000002, 0x400A0933)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x0012F6C8, 0x00001F7A, 0x00001F7A, 0x0012F6E0)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00000002, 0xE63FE008, 0x00001F7A, 0xE63FE008)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0xC58B987D, 0x00000001, 0x02807040, 0xEB22920D)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x0012F6E0, 0x00000001, 0xE4B1D320, 0xE4B1D320)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x40150210, 0x00ED0000, 0x00000005, 0x012D2754)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00ED0000, 0x56B8372A, 0x00ED0000, 0x00000005)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00000005, 0x00000000, 0x002FDFC0, 0x00000005)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00000006, 0x00000000, 0x00000000, 0x002FB730)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
kernel32.dll!BaseThreadInitThunk((null):0)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart((null):0)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart((null):0)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[21168] 15 Feb 11:43:08.748 # --- INFO OUTPUT
[7772] 15 Feb 11:43:09.247 # fork operation failed
[7772] 15 Feb 11:43:09.254 # Background saving terminated by signal 1
[7772] 15 Feb 11:43:14.060 * 1 changes in 3600 seconds. Saving...

This errors appears every 5 seconds (on every save operation).
After restart everything works fine again.

Do you have any idea what to do?

Kind regards,
Bastian Kröger

@Harachie Harachie reopened this Feb 15, 2016
@enricogior
Copy link

Hi @Harachie
can you please post the log lines before the crash?
Thank you.

@Harachie
Copy link
Author

Hi @enricogior ,

here are the ones before the problem appears:

[7772] 15 Feb 07:19:25.036 * 1 changes in 3600 seconds. Saving...
[7772] 15 Feb 07:19:25.042 * Background saving started by pid 8580
[7772] 15 Feb 07:19:25.843 # fork operation complete
[7772] 15 Feb 07:19:25.851 * Background saving terminated with success
[7772] 15 Feb 08:19:26.051 * 1 changes in 3600 seconds. Saving...
[7772] 15 Feb 08:19:26.057 * Background saving started by pid 28332
[7772] 15 Feb 08:19:27.158 # fork operation complete
[7772] 15 Feb 08:19:27.165 * Background saving terminated with success
[7772] 15 Feb 09:19:28.087 * 1 changes in 3600 seconds. Saving...
[7772] 15 Feb 09:19:28.092 * Background saving started by pid 27716
[7772] 15 Feb 09:19:29.193 # fork operation complete
[7772] 15 Feb 09:19:29.202 * Background saving terminated with success
[7772] 15 Feb 10:19:30.038 * 1 changes in 3600 seconds. Saving...
[7772] 15 Feb 10:19:30.044 * Background saving started by pid 24092
[7772] 15 Feb 10:19:31.345 # fork operation complete
[7772] 15 Feb 10:19:31.354 * Background saving terminated with success
[7772] 15 Feb 11:19:32.090 * 1 changes in 3600 seconds. Saving...
[7772] 15 Feb 11:19:32.098 * Background saving started by pid 26120
[26120] 15 Feb 11:19:32.678 #

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[26120] 15 Feb 11:19:32.680 # Redis version: 3.0.501
[26120] 15 Feb 11:19:32.680 # --- EXCEPTION_ACCESS_VIOLATION
[26120] 15 Feb 11:19:32.680 # --- STACK TRACE
redis-server.exe!((null):0)(0x0012E7B0, 0x0012FF90, 0x00000001, 0x40124730)
redis-server.exe!((null):0)(0x00000001, 0x00000000, 0x00000001, 0xE611663C)
kernel32.dll!UnhandledExceptionFilter((null):0)(0x0012E7B0, 0x00000006, 0x00000000, 0x00000001)
ntdll.dll!MD5Final((null):0)(0x0012F3F0, 0xE4B29145, 0x4012AC28, 0x00000000)
ntdll.dll!_C_specific_handler((null):0)(0x00130000, 0x0012FF90, 0x0012FF90, 0x77AD2DD0)
ntdll.dll!RtlDecodePointer((null):0)(0x00130000, 0x773BDDA0, 0x00012F00, 0xE3E1511E)
ntdll.dll!RtlUnwindEx((null):0)(0x0012F3F0, 0x0012EF00, 0x00000000, 0x00000000)
ntdll.dll!KiUserExceptionDispatcher((null):0)(0x00000002, 0x40150210, 0x00000002, 0x400A0933)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x0012F6C8, 0x00001F7A, 0x00001F7A, 0x0012F6E0)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00000002, 0xE63FE008, 0x00001F7A, 0xE63FE008)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0xCBC7A16F, 0x00000001, 0x02407040, 0xEB22920D)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x0012F6E0, 0x00000001, 0xE4B1D320, 0xE4B1D320)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x40150210, 0x00CE0000, 0x00000005, 0x010E2754)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00CE0000, 0x56B8372A, 0x00CE0000, 0x00000005)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00000005, 0x00000000, 0x002BDFC0, 0x00000005)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00000006, 0x00000000, 0x00000000, 0x002BB730)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
redis-server.exe!KiUserExceptionDispatcher((null):0)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
kernel32.dll!BaseThreadInitThunk((null):0)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart((null):0)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart((null):0)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[26120] 15 Feb 11:19:32.701 # --- INFO OUTPUT
[7772] 15 Feb 11:19:34.900 # fork operation failed
[7772] 15 Feb 11:19:34.914 # Background saving terminated by signal 1
[7772] 15 Feb 11:19:38.019 * 1 changes in 3600 seconds. Saving...
[7772] 15 Feb 11:19:38.023 * Background saving started by pid 6660
[6660] 15 Feb 11:19:38.671 #

Kind regards,
Bastian

@enricogior
Copy link

@Harachie
thank you for posting the log, unfortunately is not very useful.
If I provide a private build to improve the crash report would you be willing to test it?
Thank you.

@Harachie
Copy link
Author

@enricogior ,

of course I would try it out.
Just send me over the link/files and I will let it run on this server.

Kind regards,
Bastian

@enricogior
Copy link

@Harachie
I'll let you know as soon as the private build is ready.
Thank you.

@enricogior
Copy link

Hi @Harachie
here is the private build, it has extra log info and a small code change that may help to investigate the issue.
Thank you.

@Harachie
Copy link
Author

Hi @enricogior ,

thanks, it's on the server now.
I will let you know once anything happens.

Many thanks for your support!

Kind regards,
Bastian

@enricogior
Copy link

Hi @Harachie
any news? The crash happened again?
Thank you.

@Harachie
Copy link
Author

Hi @enricogior ,

no news, everything runs smooth so far (like always when you add logging :( ).
I will come back to you once something happens.

Thanks,
Bastian

@enricogior
Copy link

@Harachie
I'm glad things are going well, but given I really didn't fix anything it may still happen, so let's see if and when ;)
Thank you.

@Harachie
Copy link
Author

Harachie commented Mar 3, 2016

Hi @enricogior ,

now it happens.
Here are the log outputs.

--- edit ---
I have also run the Redis ram tester for 3 days without any problems.
--- edit end ---

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[16468] 03 Mar 14:12:09.297 # Redis version: 3.0.501-private
[16468] 03 Mar 14:12:09.297 # --- EXCEPTION_ACCESS_VIOLATION
[16468] 03 Mar 14:12:09.297 # --- STACK TRACE
redis-server.exe!LogStackTrace(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:95)(0x401249A0, 0x0012FF90, 0x00000001, 0xFFFFFFFF)
redis-server.exe!UnhandledExceptiontHandler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000001, 0x00000000, 0x00000001, 0xE4957817)
kernel32.dll!UnhandledExceptionFilter(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012E7B0, 0x00000006, 0x00000000, 0x00000001)
ntdll.dll!MD5Final(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0xE3692187, 0x4012AF60, 0x00000000)
ntdll.dll!_C_specific_handler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x0012FF90, 0x0012FF90, 0x77AD2DD0)
ntdll.dll!RtlDecodePointer(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x773BDDA0, 0x00012F00, 0xE3692808)
ntdll.dll!RtlUnwindEx(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0x0012EF00, 0x00000000, 0x00000000)
ntdll.dll!KiUserExceptionDispatcher(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000002, 0x40150210, 0x00000002, 0x400A0D83)
redis-server.exe!rioFileWrite(c:\github\janea\redis-private\src\rio.c:118)(0x0012F688, 0x0000201C, 0x0000201C, 0x0012F6E0)
redis-server.exe!rioWrite(c:\github\janea\redis-private\src\rio.h:100)(0x00000002, 0xF2FFD008, 0x0000201C, 0xF2FFD008)
redis-server.exe!rdbSaveRawString(c:\github\janea\redis-private\src\rdb.c:305)(0x5F833C60, 0x00000001, 0x03007040, 0x43787977)
redis-server.exe!rdbSaveObject(c:\github\janea\redis-private\src\rdb.c:515)(0x0012F6E0, 0x00000001, 0xE7782BC0, 0xE7782BC0)
redis-server.exe!rdbSaveRio(c:\github\janea\redis-private\src\rdb.c:694)(0x40150210, 0x02480000, 0x00000005, 0x02882754)
redis-server.exe!rdbSave(c:\github\janea\redis-private\src\rdb.c:758)(0x02480000, 0x02480000, 0x02480000, 0x00CE000C)
redis-server.exe!QForkChildInit(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:345)(0x00000005, 0x00000000, 0x00252D00, 0x00000005)
redis-server.exe!QForkStartup(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:526)(0x00000006, 0x00000000, 0x00000000, 0x0024B730)
redis-server.exe!main(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:1254)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
redis-server.exe!__tmainCRTStartup(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
kernel32.dll!BaseThreadInitThunk(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[16468] 03 Mar 14:12:09.313 # --- INFO OUTPUT
[8404] 03 Mar 14:12:12.154 # fork operation failed
[8404] 03 Mar 14:12:12.173 # Background saving terminated by signal 1
[8404] 03 Mar 14:12:14.086 * 1 changes in 60 seconds. Saving...
[8404] 03 Mar 14:12:14.092 * Background saving started by pid 5316
[5316] 03 Mar 14:12:14.352 # main() start.
[5316] 03 Mar 14:12:14.353 # jemalloc init.
[5316] 03 Mar 14:12:14.357 # qfork start.
[5316] 03 Mar 14:12:14.357 # child init.
[5316] 03 Mar 14:12:14.358 # dup handles.
[5316] 03 Mar 14:12:14.358 # mapped memory.
[5316] 03 Mar 14:12:14.358 # globals.
[5316] 03 Mar 14:12:14.358 # rdbsave.
[5316] 03 Mar 14:12:15.683 #

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[5316] 03 Mar 14:12:15.683 # Redis version: 3.0.501-private
[5316] 03 Mar 14:12:15.683 # --- EXCEPTION_ACCESS_VIOLATION
[5316] 03 Mar 14:12:15.683 # --- STACK TRACE
redis-server.exe!LogStackTrace(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:95)(0x401249A0, 0x0012FF90, 0x00000001, 0xFFFFFFFF)
redis-server.exe!UnhandledExceptiontHandler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000001, 0x00000000, 0x00000001, 0xE4957817)
kernel32.dll!UnhandledExceptionFilter(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012E7B0, 0x00000006, 0x00000000, 0x00000001)
ntdll.dll!MD5Final(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0xE3692187, 0x4012AF60, 0x00000000)
ntdll.dll!_C_specific_handler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x0012FF90, 0x0012FF90, 0x77AD2DD0)
ntdll.dll!RtlDecodePointer(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x773BDDA0, 0x00012F00, 0xE3692808)
ntdll.dll!RtlUnwindEx(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0x0012EF00, 0x00000000, 0x00000000)
ntdll.dll!KiUserExceptionDispatcher(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000002, 0x40150210, 0x00000002, 0x400A0D83)
redis-server.exe!rioFileWrite(c:\github\janea\redis-private\src\rio.c:118)(0x0012F688, 0x0000201C, 0x0000201C, 0x0012F6E0)
redis-server.exe!rioWrite(c:\github\janea\redis-private\src\rio.h:100)(0x00000002, 0xF2FFD008, 0x0000201C, 0xF2FFD008)
redis-server.exe!rdbSaveRawString(c:\github\janea\redis-private\src\rdb.c:305)(0x5BDF053A, 0x00000001, 0x02C07040, 0x43787977)
redis-server.exe!rdbSaveObject(c:\github\janea\redis-private\src\rdb.c:515)(0x0012F6E0, 0x00000001, 0xE7782BC0, 0xE7782BC0)
redis-server.exe!rdbSaveRio(c:\github\janea\redis-private\src\rdb.c:694)(0x40150210, 0x02380000, 0x00000005, 0x02782754)
redis-server.exe!rdbSave(c:\github\janea\redis-private\src\rdb.c:758)(0x02380000, 0x02380000, 0x02380000, 0x00CE000C)
redis-server.exe!QForkChildInit(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:345)(0x00000005, 0x00000000, 0x00202D00, 0x00000005)
redis-server.exe!QForkStartup(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:526)(0x00000006, 0x00000000, 0x00000000, 0x001FB730)
redis-server.exe!main(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:1254)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
redis-server.exe!__tmainCRTStartup(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
kernel32.dll!BaseThreadInitThunk(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[5316] 03 Mar 14:12:15.704 # --- INFO OUTPUT
[8404] 03 Mar 14:12:15.994 # fork operation failed
[8404] 03 Mar 14:12:16.009 # Background saving terminated by signal 1
[8404] 03 Mar 14:12:20.025 * 1 changes in 60 seconds. Saving...
[8404] 03 Mar 14:12:20.031 * Background saving started by pid 12888
[12888] 03 Mar 14:12:20.294 # main() start.
[12888] 03 Mar 14:12:20.295 # jemalloc init.
[12888] 03 Mar 14:12:20.300 # qfork start.
[12888] 03 Mar 14:12:20.300 # child init.
[12888] 03 Mar 14:12:20.300 # dup handles.
[12888] 03 Mar 14:12:20.301 # mapped memory.
[12888] 03 Mar 14:12:20.301 # globals.
[12888] 03 Mar 14:12:20.301 # rdbsave.
[12888] 03 Mar 14:12:21.725 #

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[12888] 03 Mar 14:12:21.725 # Redis version: 3.0.501-private
[12888] 03 Mar 14:12:21.725 # --- EXCEPTION_ACCESS_VIOLATION
[12888] 03 Mar 14:12:21.725 # --- STACK TRACE
redis-server.exe!LogStackTrace(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:95)(0x401249A0, 0x0012FF90, 0x00000001, 0xFFFFFFFF)
redis-server.exe!UnhandledExceptiontHandler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000001, 0x00000000, 0x00000001, 0xE4957817)
kernel32.dll!UnhandledExceptionFilter(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012E7B0, 0x00000006, 0x00000000, 0x00000001)
ntdll.dll!MD5Final(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0xE3692187, 0x4012AF60, 0x00000000)
ntdll.dll!_C_specific_handler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x0012FF90, 0x0012FF90, 0x77AD2DD0)
ntdll.dll!RtlDecodePointer(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x773BDDA0, 0x00012F00, 0xE3692808)
ntdll.dll!RtlUnwindEx(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0x0012EF00, 0x00000000, 0x00000000)
ntdll.dll!KiUserExceptionDispatcher(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000002, 0x40150210, 0x00000002, 0x400A0D83)
redis-server.exe!rioFileWrite(c:\github\janea\redis-private\src\rio.c:118)(0x0012F688, 0x0000201C, 0x0000201C, 0x0012F6E0)
redis-server.exe!rioWrite(c:\github\janea\redis-private\src\rio.h:100)(0x00000002, 0xF2FFD008, 0x0000201C, 0xF2FFD008)
redis-server.exe!rdbSaveRawString(c:\github\janea\redis-private\src\rdb.c:305)(0x466F521C, 0x00000001, 0x03007040, 0x43787977)
redis-server.exe!rdbSaveObject(c:\github\janea\redis-private\src\rdb.c:515)(0x0012F6E0, 0x00000001, 0xE7782BC0, 0xE7782BC0)
redis-server.exe!rdbSaveRio(c:\github\janea\redis-private\src\rdb.c:694)(0x40150210, 0x02400000, 0x00000005, 0x02802754)
redis-server.exe!rdbSave(c:\github\janea\redis-private\src\rdb.c:758)(0x02400000, 0x02400000, 0x02400000, 0x00CE000C)
redis-server.exe!QForkChildInit(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:345)(0x00000005, 0x00000000, 0x002F2D00, 0x00000005)
redis-server.exe!QForkStartup(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:526)(0x00000006, 0x00000000, 0x00000000, 0x002EB730)
redis-server.exe!main(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:1254)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
redis-server.exe!__tmainCRTStartup(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
kernel32.dll!BaseThreadInitThunk(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[12888] 03 Mar 14:12:21.769 # --- INFO OUTPUT
[8404] 03 Mar 14:12:22.632 # fork operation failed
[8404] 03 Mar 14:12:22.649 # Background saving terminated by signal 1
[8404] 03 Mar 14:12:26.062 * 1 changes in 60 seconds. Saving...
[8404] 03 Mar 14:12:26.068 * Background saving started by pid 16228
[16228] 03 Mar 14:12:26.307 # main() start.
[16228] 03 Mar 14:12:26.309 # jemalloc init.
[16228] 03 Mar 14:12:26.313 # qfork start.
[16228] 03 Mar 14:12:26.313 # child init.
[16228] 03 Mar 14:12:26.313 # dup handles.
[16228] 03 Mar 14:12:26.314 # mapped memory.
[16228] 03 Mar 14:12:26.314 # globals.
[16228] 03 Mar 14:12:26.314 # rdbsave.
[16228] 03 Mar 14:12:28.058 #

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[16228] 03 Mar 14:12:28.058 # Redis version: 3.0.501-private
[16228] 03 Mar 14:12:28.058 # --- EXCEPTION_ACCESS_VIOLATION
[16228] 03 Mar 14:12:28.058 # --- STACK TRACE
redis-server.exe!LogStackTrace(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:95)(0x401249A0, 0x0012FF90, 0x00000001, 0xFFFFFFFF)
redis-server.exe!UnhandledExceptiontHandler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000001, 0x00000000, 0x00000001, 0xE4957817)
kernel32.dll!UnhandledExceptionFilter(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012E7B0, 0x00000006, 0x00000000, 0x00000001)
ntdll.dll!MD5Final(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0xE3692187, 0x4012AF60, 0x00000000)
ntdll.dll!_C_specific_handler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x0012FF90, 0x0012FF90, 0x77AD2DD0)
ntdll.dll!RtlDecodePointer(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x773BDDA0, 0x00012F00, 0xE3692808)
ntdll.dll!RtlUnwindEx(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0x0012EF00, 0x00000000, 0x00000000)
ntdll.dll!KiUserExceptionDispatcher(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000002, 0x40150210, 0x00000002, 0x400A0D83)
redis-server.exe!rioFileWrite(c:\github\janea\redis-private\src\rio.c:118)(0x0012F688, 0x0000201C, 0x0000201C, 0x0012F6E0)
redis-server.exe!rioWrite(c:\github\janea\redis-private\src\rio.h:100)(0x00000002, 0xF2FFD008, 0x0000201C, 0xF2FFD008)
redis-server.exe!rdbSaveRawString(c:\github\janea\redis-private\src\rdb.c:305)(0x4C8CB790, 0x00000001, 0x03007040, 0x43787977)
redis-server.exe!rdbSaveObject(c:\github\janea\redis-private\src\rdb.c:515)(0x0012F6E0, 0x00000001, 0xE7782BC0, 0xE7782BC0)
redis-server.exe!rdbSaveRio(c:\github\janea\redis-private\src\rdb.c:694)(0x40150210, 0x02440000, 0x00000005, 0x02842754)
redis-server.exe!rdbSave(c:\github\janea\redis-private\src\rdb.c:758)(0x02440000, 0x02440000, 0x02440000, 0x00CE000C)
redis-server.exe!QForkChildInit(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:345)(0x00000005, 0x00000000, 0x00312D00, 0x00000005)
redis-server.exe!QForkStartup(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:526)(0x00000006, 0x00000000, 0x00000000, 0x0030B730)
redis-server.exe!main(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:1254)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
redis-server.exe!__tmainCRTStartup(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
kernel32.dll!BaseThreadInitThunk(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[16228] 03 Mar 14:12:28.103 # --- INFO OUTPUT
[8404] 03 Mar 14:12:28.369 # fork operation failed
[8404] 03 Mar 14:12:28.385 # Background saving terminated by signal 1
[8404] 03 Mar 14:12:32.000 * 1 changes in 60 seconds. Saving...
[8404] 03 Mar 14:12:32.006 * Background saving started by pid 12156
[12156] 03 Mar 14:12:32.176 # main() start.
[12156] 03 Mar 14:12:32.177 # jemalloc init.
[12156] 03 Mar 14:12:32.180 # qfork start.
[12156] 03 Mar 14:12:32.180 # child init.
[12156] 03 Mar 14:12:32.180 # dup handles.
[12156] 03 Mar 14:12:32.180 # mapped memory.
[12156] 03 Mar 14:12:32.180 # globals.
[12156] 03 Mar 14:12:32.180 # rdbsave.
[12156] 03 Mar 14:12:33.505 #

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[12156] 03 Mar 14:12:33.505 # Redis version: 3.0.501-private
[12156] 03 Mar 14:12:33.505 # --- EXCEPTION_ACCESS_VIOLATION
[12156] 03 Mar 14:12:33.505 # --- STACK TRACE
redis-server.exe!LogStackTrace(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:95)(0x401249A0, 0x0012FF90, 0x00000001, 0xFFFFFFFF)
redis-server.exe!UnhandledExceptiontHandler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000001, 0x00000000, 0x00000001, 0xE4957817)
kernel32.dll!UnhandledExceptionFilter(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012E7B0, 0x00000006, 0x00000000, 0x00000001)
ntdll.dll!MD5Final(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0xE3692187, 0x4012AF60, 0x00000000)
ntdll.dll!_C_specific_handler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x0012FF90, 0x0012FF90, 0x77AD2DD0)
ntdll.dll!RtlDecodePointer(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x773BDDA0, 0x00012F00, 0xE3692808)
ntdll.dll!RtlUnwindEx(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0x0012EF00, 0x00000000, 0x00000000)
ntdll.dll!KiUserExceptionDispatcher(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000002, 0x40150210, 0x00000002, 0x400A0D83)
redis-server.exe!rioFileWrite(c:\github\janea\redis-private\src\rio.c:118)(0x0012F688, 0x0000201C, 0x0000201C, 0x0012F6E0)
redis-server.exe!rioWrite(c:\github\janea\redis-private\src\rio.h:100)(0x00000002, 0xF2FFD008, 0x0000201C, 0xF2FFD008)
redis-server.exe!rdbSaveRawString(c:\github\janea\redis-private\src\rdb.c:305)(0x41785F26, 0x00000001, 0x03007040, 0x43787977)
redis-server.exe!rdbSaveObject(c:\github\janea\redis-private\src\rdb.c:515)(0x0012F6E0, 0x00000001, 0xE7782BC0, 0xE7782BC0)
redis-server.exe!rdbSaveRio(c:\github\janea\redis-private\src\rdb.c:694)(0x40150210, 0x02770000, 0x00000005, 0x02B72754)
redis-server.exe!rdbSave(c:\github\janea\redis-private\src\rdb.c:758)(0x02770000, 0x02770000, 0x02770000, 0x00CE000C)
redis-server.exe!QForkChildInit(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:345)(0x00000005, 0x00000000, 0x00332D00, 0x00000005)
redis-server.exe!QForkStartup(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:526)(0x00000006, 0x00000000, 0x00000000, 0x0032B730)
redis-server.exe!main(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:1254)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
redis-server.exe!__tmainCRTStartup(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
kernel32.dll!BaseThreadInitThunk(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[12156] 03 Mar 14:12:33.529 # --- INFO OUTPUT
[8404] 03 Mar 14:12:34.408 # fork operation failed
[8404] 03 Mar 14:12:34.423 # Background saving terminated by signal 1
[8404] 03 Mar 14:12:38.037 * 1 changes in 60 seconds. Saving...
[8404] 03 Mar 14:12:38.043 * Background saving started by pid 26740
[26740] 03 Mar 14:12:38.302 # main() start.
[26740] 03 Mar 14:12:38.303 # jemalloc init.
[26740] 03 Mar 14:12:38.308 # qfork start.
[26740] 03 Mar 14:12:38.308 # child init.
[26740] 03 Mar 14:12:38.308 # dup handles.
[26740] 03 Mar 14:12:38.308 # mapped memory.
[26740] 03 Mar 14:12:38.308 # globals.
[26740] 03 Mar 14:12:38.308 # rdbsave.
[26740] 03 Mar 14:12:39.747 #

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[26740] 03 Mar 14:12:39.747 # Redis version: 3.0.501-private
[26740] 03 Mar 14:12:39.747 # --- EXCEPTION_ACCESS_VIOLATION
[26740] 03 Mar 14:12:39.747 # --- STACK TRACE
redis-server.exe!LogStackTrace(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:95)(0x401249A0, 0x0012FF90, 0x00000001, 0xFFFFFFFF)
redis-server.exe!UnhandledExceptiontHandler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000001, 0x00000000, 0x00000001, 0xE4957817)
kernel32.dll!UnhandledExceptionFilter(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012E7B0, 0x00000006, 0x00000000, 0x00000001)
ntdll.dll!MD5Final(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0xE3692187, 0x4012AF60, 0x00000000)
ntdll.dll!_C_specific_handler(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x0012FF90, 0x0012FF90, 0x77AD2DD0)
ntdll.dll!RtlDecodePointer(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x773BDDA0, 0x00012F00, 0xE3692808)
ntdll.dll!RtlUnwindEx(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x0012F3F0, 0x0012EF00, 0x00000000, 0x00000000)
ntdll.dll!KiUserExceptionDispatcher(c:\github\janea\redis-private\src\win32_interop\win32_stacktrace.cpp:185)(0x00000002, 0x40150210, 0x00000002, 0x400A0D83)
redis-server.exe!rioFileWrite(c:\github\janea\redis-private\src\rio.c:118)(0x0012F688, 0x0000201C, 0x0000201C, 0x0012F6E0)
redis-server.exe!rioWrite(c:\github\janea\redis-private\src\rio.h:100)(0x00000002, 0xF2FFD008, 0x0000201C, 0xF2FFD008)
redis-server.exe!rdbSaveRawString(c:\github\janea\redis-private\src\rdb.c:305)(0x41F9BD11, 0x00000001, 0x03007040, 0x43787977)
redis-server.exe!rdbSaveObject(c:\github\janea\redis-private\src\rdb.c:515)(0x0012F6E0, 0x00000001, 0xE7782BC0, 0xE7782BC0)
redis-server.exe!rdbSaveRio(c:\github\janea\redis-private\src\rdb.c:694)(0x40150210, 0x02400000, 0x00000005, 0x02802754)
redis-server.exe!rdbSave(c:\github\janea\redis-private\src\rdb.c:758)(0x02400000, 0x02400000, 0x02400000, 0x00CE000C)
redis-server.exe!QForkChildInit(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:345)(0x00000005, 0x00000000, 0x00242D00, 0x00000005)
redis-server.exe!QForkStartup(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:526)(0x00000006, 0x00000000, 0x00000000, 0x0023B730)
redis-server.exe!main(c:\github\janea\redis-private\src\win32_interop\win32_qfork.cpp:1254)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
redis-server.exe!__tmainCRTStartup(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
kernel32.dll!BaseThreadInitThunk(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[26740] 03 Mar 14:12:39.790 # --- INFO OUTPUT

Server

redis_version:3.0.501-private
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:e9cf00ecd310a91c
redis_mode:standalone
os:Windows
arch_bits:64
multiplexing_api:WinSock_IOCP
process_id:26740
run_id:811758afa7736fdcf79fba36e1be3a4ddbf62c29
tcp_port:6379
uptime_in_seconds:1139261
uptime_in_days:13
hz:10
lru_clock:14170182
config_file:C:\Program Files\Redis\redis.windows-service.conf

Clients

connected_clients:50
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

Memory

used_memory:944
used_memory_human:944B
used_memory_rss:68396640
used_memory_peak:285139248
used_memory_peak_human:271.93M
used_memory_lua:0
mem_fragmentation_ratio:72454.07
mem_allocator:jemalloc-3.6.0

Persistence

loading:0
rdb_changes_since_last_save:830
rdb_bgsave_in_progress:1
rdb_last_save_time:1457010667
rdb_last_bgsave_status:err
rdb_last_bgsave_time_sec:2
rdb_current_bgsave_time_sec:1457010760
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:3
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok

Stats

total_connections_received:108338
total_commands_processed:9463840
instantaneous_ops_per_sec:0
total_net_input_bytes:2251968129
total_net_output_bytes:8818166410
instantaneous_input_kbps:0.08
instantaneous_output_kbps:0.25
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:92311
evicted_keys:0
keyspace_hits:3436377
keyspace_misses:2442485
pubsub_channels:3
pubsub_patterns:0
latest_fork_usec:5000
migrate_cached_sockets:0

Replication

role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

CPU

used_cpu_sys:0.34
used_cpu_user:1.39
used_cpu_sys_children:0.00
used_cpu_user_children:0.00

Commandstats

Cluster

cluster_enabled:0

Keyspace

db0:keys=41980,expires=13109,avg_ttl=304753252
db1:keys=6,expires=0,avg_ttl=0
db6:keys=32,expires=1,avg_ttl=77681
[26740] 03 Mar 14:12:39.791 #
=== REDIS BUG REPORT END. Make sure to include from START to END. ===

@enricogior
Copy link

Hi @Harachie
thank you for reporting the log, it looks like a memory corruption problem.
To fix these types of problems, it would help to have a reliable way to reproduce it, in this case it means to have access to the dump files. Would it be possible for you to send us the files or it's sensitive data that you cannot share?
Thank you.

@Harachie
Copy link
Author

Harachie commented Mar 7, 2016

Hi @enricogior ,
which dump files do you need?
The redis-server.exe memory dump when it cannot write anymore?
It does not contain sensitive data, so I can provide it when it happens again.

Also we are going to replace this server with a new one,
so we have about 1-2 month or so to play around with this one
untill it's gone.

Thanks for your help,
Bastian

@enricogior
Copy link

Hi @Harachie
the Redis dump.rdb is the file that may help to reproduce the error, but it may contain sensitive data.
If you cannot share it it's ok, I'll create anyway a private build to generate a special log to help understanding the cause of the problem. The log you posted previously has helped to narrow down where the problem is but we don't have all the details yet.
The new private build will be ready tomorrow, I'll let you know.
Thank you.

@Harachie
Copy link
Author

Harachie commented Mar 7, 2016

Hi @enricogior

please download the latest dump file here
https://safestorage.blob.core.windows.net/public/dump.zip

Kind regards,
Bastian

@enricogior
Copy link

@Harachie
thank you.

@TimPosey2
Copy link

Same problem here as well with 3.0.501

Only thing I can do as a workaround is restart every few hours. I can still issue a "SAVE" command and that will work correctly. However the automatic BGSAVEs end with the same error.

@kpturner
Copy link

Getting the same problem - although I am using version 2.8.2400

@kpturner
Copy link

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[19164] 17 Mar 13:42:28.996 # Redis version: 2.8.2400
[19164] 17 Mar 13:42:28.996 # --- ABORT
[19164] 17 Mar 13:42:28.996 # --- STACK TRACE
redis-server.exe!LogStackTrace(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:95)(0x00000016, 0x40152A30, 0x00000000, 0x00000001)
redis-server.exe!AbortHandler(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:207)(0x00000001, 0x4E93453D, 0x40135210, 0x09676437)
redis-server.exe!raise(f:\dd\vctools\crt\crtw32\misc\winsig.c:587)(0x00000001, 0x00000000, 0x00000040, 0x00000030)
redis-server.exe!abort(f:\dd\vctools\crt\crtw32\misc\abort.c:82)(0x40135210, 0x40038F12, 0x00000001, 0x0014F688)
redis-server.exe!dlmalloc(c:\release\redis\src\win32_interop\win32_dlmalloc.c:4638)(0x00000030, 0x00000009, 0x00000003, 0x40135210)
redis-server.exe!zmalloc(c:\release\redis\src\zmalloc.c:143)(0x0014F710, 0x00000009, 0x4013E9D8, 0x00000006)
redis-server.exe!rdbSaveRio(c:\release\redis\src\rdb.c:681)(0x40135210, 0x02740000, 0x00000000, 0x03742754)
redis-server.exe!rdbSave(c:\release\redis\src\rdb.c:760)(0xFC640000, 0x56ED9062, 0x02740000, 0x00000168)
redis-server.exe!QForkChildRun(c:\release\redis\src\win32_interop\win32_qfork.cpp:332)(0x00000006, 0xFFFFFFFF, 0x0033EA20, 0x00000000)
redis-server.exe!QForkStartup(c:\release\redis\src\win32_interop\win32_qfork.cpp:740)(0xFFFFFFFF, 0x0033EA20, 0x00000006, 0x00000000)
redis-server.exe!main(c:\release\redis\src\win32_interop\win32_qfork.cpp:1333)(0x00000000, 0x00000000, 0x00000000, 0xFFFFE000)
redis-server.exe!__tmainCRTStartup(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x400344CC, 0x00000000, 0x00000000)
KERNEL32.DLL!BaseThreadInitThunk(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x07392D70, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[19164] 17 Mar 13:42:32.180 #
=== REDIS BUG REPORT END. Make sure to include from START to END. ===

@enricogior
Copy link

Hi @kpturner
the problem you are experiencing is different from the issue on the 3.0.501.
The 2.8.2400 has a different mechanism to allocate and manage the heap memory and it may run into heap fragmentation conditions that cause the error you got.
Please refer to the wiki documentation to mitigate the heap fragmentation problem.
Thank you.

@kpturner
Copy link

That is encouraging - although having read the documentation as instructed I still don't really know exactly what to do. I am new to redis so I don't know how to tell what my maxheap and maxmemory settings are, or how to change them or, to be honest, what to change them to :( Yes, I am a complete newb.

@enricogior
Copy link

@Harachie
the error occurs when saving the RDB file, have you tried to disable the RDB and use the AOF?

@enricogior
Copy link

@Harachie
let me elaborate on the previous question: if using the AOF the crash doesn't occur we can use the AOF to identify the data that causes the crash when using the RDB.

@Harachie
Copy link
Author

@enricogior
I am using our old live server now to let it save every 5 seconds and having another client open with "MONITOR" to see whether I can provoke any misbehavior.
I will try the AOF stuff on another server.
Thanks for suggesting these, I'll keep you posted!

@Harachie
Copy link
Author

Harachie commented Jun 17, 2016

@enricogior
I have created a small test program to provoke this error. Took me some time to get a reproducible aof + rdb file :-)
Please download http://85.214.86.182/redis%20crash%20bgsave.zip (aof/rdb/config file) and start redis with the config then bgsave => crash (save works though).
The tip with the aof file was really helpful!
Now it is reproducible.

Hope it helps to tackle down this problem!
If I can help in any way please let me know.

--- edit ---
I have Redis running in source code mode on one of the servers, so I can also try code changes in case you want me to, as I can reproduce this quite reliable :)
--- end edit ---

Kind regards,
Bastian

@enricogior
Copy link

@Harachie
thank you, I'll try and let you know.

@enricogior
Copy link

@Harachie
I've tried on two different machines (one virtual and one physical) but the crash didn't occur, can you please check if the files you attached are the correct one?
Thank you.

@Harachie
Copy link
Author

@enricogior
I checked the file and could not reproduce it either.
After proviking the crash again I copied the files (dump.rdp + aof file) and could only provoke it one more time. After renaming the copies back to the original file names and executing again everything works again.
I am a bit confused to be honest.
On Monday I try again when having more time on a different server.

Thanks you very much for helping so far! :)

@Harachie
Copy link
Author

@enricogior
I can reproduce it on the server but not with the dump + aof file.
Please have a look at http://85.214.86.182/redis%20crash.png for the call stack and where it crashes.
Maybe this helps.
Can the offset be bigger than the buffer size? (Just guessing, I have no idea really)

@enricogior
Copy link

@Harachie
how do you reproduce the crash?
Thanks for the call stack I'll investigate it.

@Harachie
Copy link
Author

Harachie commented Jun 20, 2016

@enricogior
I changed the method to:

void EnsureMemoryIsMapped(const void *buffer, size_t size) {
    // Use 'volatile' to make sure the compiler doesn't remove "c = *((char*) (p + offset));"
    volatile char c;
    char* p = (char*) buffer;
    char* pStart = p - ((size_t) p % Globals::pageSize);
    char* pEnd = p + size;
    if ((size_t) (pEnd - pStart) > Globals::pageSize) {
        size_t offset = 0;
        while (offset < size) {
            if (size < offset) {
                offset = size;
            } else {
                offset += Globals::pageSize;

                if (offset > size) {
                    offset = size;
                }
            }
            c = *((char*) (p + offset));
        }
    }
}

and it's running fine so far.
My test program reads the iis log files and replays all the http calls which are related to internal redis usage. After every http call a bgsave is issued (even if it is already saving).
I tried to reduce it to simpler calls, but it just doesn't work :(

Sometimes I also get "[6096] 20 Jun 09:58:44.475 # AbortForkOperation: 0x00000005 - EndForkOperation: Killing forked process failed.: Zugriff verweigert (=> access denied)"
Which I can reproduce locally also via:

Private Sub TestMemoryBoundary()
        Dim payload As Byte()
        Dim ms As New IO.MemoryStream

        For i As Integer = 1 To 8000
            ms.WriteByte(1)
        Next

        payload = ms.ToArray

        Try
            Using client As New ServiceStack.Redis.RedisClient
                client.FlushAll()
                client.Save()

                For key As Integer = 1 To 10000000
                    client.Set("Test:" & key, payload)
                    Threading.Thread.Sleep(1)

                    Try
                        client.BgSave()
                    Catch rex As ServiceStack.Redis.RedisException
                        If Not rex.Message.Contains("Background save already") Then
                            Console.WriteLine("Redis Error: " & rex.ToString)
                        End If

                    Catch ex As Exception
                        Console.WriteLine("General exception: " & ex.ToString)
                    End Try

                    If key Mod 50000 = 0 Then
                        client.FlushAll()
                    End If
                Next

            End Using
        Catch ex As Exception
            Console.WriteLine("General: " & ex.ToString)
        End Try
    End Sub

The other behavior I can only reproduce on the servers.

Kind regards,
Bastian

@enricogior
Copy link

@Harachie
I think you nail it, there is definitely a boundary case bug in the EnsureMemoryIsMapped code.
Can you confirm that the crash is not anymore happening after your fix?
Thank you.

@Harachie
Copy link
Author

@enricogior
So far it looks very promising, no crash for one hour so far.
Normally it happened after 3-10 minutes.
Already did 4 complete log runs, so from my side it looks good 👍

@enricogior
Copy link

@Harachie
the EnsureMemoryIsMapped function was added in 2.8 to fix a known problem with the memory mapped file. In 3.x the memory mapped file has been replaced by the system-paging file and it's possible that EnsureMemoryIsMapped is not even necessary anymore. Your fix is a little bit too aggressive in the sense that it "disable" what EnsureMemoryIsMapped is supposed to do in some cases, but has I said, it may not cause any problem since the entire function maybe not required anymore.
Anyway, please keep testing your fix and let me know how it works.
Thanks again for the great work done!!!

@Harachie
Copy link
Author

@enricogior
Thank you for the explanation :)
I have too little knowledge of the internals to really know what was happening there,
the only thing I was thinking of is that it could be that the last read could fall in a range on memory which is not allocated to the current process.

Should I try to run a build without the method? How could I verify that everything works as expected?
I am happy to help in any way, just tell me what to do :)

@enricogior
Copy link

@Harachie
correction: your fix is fine, it's not too aggressive, the only thing is that it can be written in a more compact way:

        while (offset < size) {
            offset += Globals::pageSize;
            if (offset > size) {
                offset = size;
            }
            c = *((char*) (p + offset));
        }

@Harachie
Copy link
Author

@enricogior
Thanks :), your code looks way cleaner 👍
I will deploy this version on some of our live servers and see wether it works fine.
Thanks for you help!

Kind regards,
Bastian

@enricogior
Copy link

@Harachie
perfect! Let me know and by tomorrow we can release the fix in all the branches (2.8, 3.0 and 3.2).
If you want you can submit a pull request with the fix (just one branch, I'll later cherry-pick the fix for the other branches) or if you prefer I can commit the fix giving you the credit.
Thank you.

@Harachie
Copy link
Author

@enricogior
Sure thing!
I created a pull request (hopefully - first time I did this). But I am also fine when you merge it :)
Thank you very much.

Kind regards,
Bastian

@enricogior
Copy link

@Harachie
great, thank you!

@Harachie
Copy link
Author

@enricogior
No crashes so far, from my side we can close this thread :)

@enricogior
Copy link

@Harachie
I'm preparing the releases for the 2.8 and 3.0 branches.
Thank you!!!

@enricogior
Copy link

The latest release is 3.0.503.
Sorry about the double release in one day.
Thank you.

@taliesins
Copy link

I think this may be a related issue #492

@mtilev
Copy link

mtilev commented Jul 20, 2017

Hello,

I hope it is fine to comment on this topic here, as I suspect having a very similar case here.

Using Redis 64bit 3.0.503 on a Windows Server 2008 R2 Standard machine. Memory, disc and CPU resource consumption seems normal, threre are still arround 2 GB of RAM free. I see this error message almost every five minutes, interweaved with several messages about successful fork operations:

`[4064] 06 Jul 12:34:14.919 * 10000 changes in 60 seconds. Saving...
[4064] 06 Jul 12:34:14.934 * Background saving started by pid 3548
[4064] 06 Jul 12:34:15.839 # fork operation complete
[4064] 06 Jul 12:34:15.870 * Background saving terminated with success
[4064] 06 Jul 12:35:26.788 * 10000 changes in 60 seconds. Saving...
[4064] 06 Jul 12:35:26.804 * Background saving started by pid 3420
[3420] 06 Jul 12:35:27.116 #

=== REDIS BUG REPORT START: Cut & paste starting from here ===
[3420] 06 Jul 12:35:27.116 # Redis version: 3.0.503
[3420] 06 Jul 12:35:27.116 # --- EXCEPTION_ACCESS_VIOLATION
[3420] 06 Jul 12:35:27.116 # --- STACK TRACE
redis-server.exe!LogStackTrace(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:95)(0x000AE760, 0x0012FF90, 0x00000001, 0x40124730)
redis-server.exe!UnhandledExceptiontHandler(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x00000001, 0x00000000, 0x00000001, 0x00000000)
kernel32.dll!UnhandledExceptionFilter(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x000AE760, 0x00000006, 0x00000000, 0x00000001)
ntdll.dll!EtwEventSetInformation(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x000AF3A0, 0x00000000, 0x4012AC28, 0x00000000)
ntdll.dll!_C_specific_handler(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x0012FF90, 0x0012FF90, 0x773FF818)
ntdll.dll!RtlDecodePointer(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x00130000, 0x772ADD88, 0x000127EC, 0x00000000)
ntdll.dll!RtlUnwindEx(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x000AF3A0, 0x000AEEB0, 0x00000000, 0x00000000)
ntdll.dll!KiUserExceptionDispatcher(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:185)(0x512A5750, 0x02C00000, 0x067FFF7B, 0x06432960)
redis-server.exe!lzf_compress(c:\release\redis\src\lzf_c.c:207)(0x000000EB, 0x000000EB, 0x0012F6E0, 0x400A0DE3)
redis-server.exe!rdbSaveLzfStringObject(c:\release\redis\src\rdb.c:231)(0x000000EB, 0xFBEAA498, 0x00000021, 0xFBEAA498)
redis-server.exe!rdbSaveRawString(c:\release\redis\src\rdb.c:296)(0x0012F6E0, 0x000000C9, 0x02807005, 0x02807070)
redis-server.exe!rdbSaveObject(c:\release\redis\src\rdb.c:607)(0x0012F6E0, 0x00000001, 0xFBF1C6B0, 0xFBF1C6B0)
redis-server.exe!rdbSaveRio(c:\release\redis\src\rdb.c:694)(0x40150210, 0x00C10000, 0x00000005, 0x01012754)
redis-server.exe!rdbSave(c:\release\redis\src\rdb.c:758)(0x00C10000, 0x595065E5, 0x00C10000, 0x00000005)
redis-server.exe!QForkChildInit(c:\release\redis\src\win32_interop\win32_qfork.cpp:337)(0x00000005, 0x00000000, 0x0022B030, 0x00000005)
redis-server.exe!QForkStartup(c:\release\redis\src\win32_interop\win32_qfork.cpp:515)(0x00000006, 0x00000000, 0x00000000, 0x0021F5D0)
redis-server.exe!main(c:\release\redis\src\win32_interop\win32_qfork.cpp:1240)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
redis-server.exe!__tmainCRTStartup(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
kernel32.dll!BaseThreadInitThunk(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000)
[3420] 06 Jul 12:35:27.131 # --- INFO OUTPUT
[4064] 06 Jul 12:35:28.754 # fork operation failed
[4064] 06 Jul 12:35:28.816 # Background saving terminated by signal 1
[4064] 06 Jul 12:35:32.108 * 10000 changes in 60 seconds. Saving...
[4064] 06 Jul 12:35:32.108 * Background saving started by pid 2744
[4064] 06 Jul 12:35:32.981 # fork operation complete
[4064] 06 Jul 12:35:32.981 * Background saving terminated with success`

How can I gain better understanding about what is going wrong here?

Thanks and kind regards,

Milen Tilev

@Harachie
Copy link
Author

Hi @mtilev,

I recommend to update to the latest version or 3.0.504 where this issue has been fixed.
If you want to investigate yourself, you can download the source code and let it run with the debugger.

Kind regards,
Bastian

@mtilev
Copy link

mtilev commented Jul 26, 2017

Hi @Harachie,

this seems to have done the job, thanks.

Kind regards,

Milen

@jerviscui
Copy link

Hello, @Harachie
The Fork Operation Failed has been solved?
I'm using redis:

Redis 3.2.100 (00000000/0) 64 bit
Running in standalone mode

by the window server:

Windows Server 2012 R2
16G RAM

@Harachie
Copy link
Author

Hi @jerviscui ,
this version should contain the fix as well.
I recommend using the Unix version though if possible.
Seems like development has been stopped on the windows version (again :( ).

Kind regards,
Bastian

@jerviscui
Copy link

jerviscui commented Dec 6, 2018

@Harachie thankyou.

I configure the redis log with loglevel debug.
But have no more message for "fork operation failed".

DB 0: 110 keys (110 volatile) in 128 slots HT.
[5828] 28 Nov 12:11:20.817 - 2 clients connected (0 slaves), 870752 bytes in use
[5828] 28 Nov 12:11:24.100 * 10 changes in 300 seconds. Saving...
[5828] 28 Nov 12:11:24.100 * Background saving started by pid 6072
[5828] 28 Nov 12:11:24.647 # fork operation failed
[5828] 28 Nov 12:11:24.647 # Background saving terminated by signal 1

I'm going to use by the bgsave option.
stop-writes-on-bgsave-error no

I'll consider using the Unix if the error remains the same.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

8 participants