Commit Graph
4582 Commits
Author SHA1 Message Date
Alexis Campailla 72d34a87e3 Portability fixes (ssize_t, off_t)
Fix definition of ssize_t and off_t.
2015-05-29 15:26:02 +02:00
Alexis Campailla 6ac1b5db87 test: integration\aof continue run on test failure
When the set client statement throws an exception
the whole test run is aborted.

TODO: verify if this a Windows specific issue
2015-05-28 15:36:28 +02:00
orangemocha 199eb9f568 Merge pull request #237 from MSOpenTech/WixInstaller
Add MSI installer. This is taken from https://github.com/MSOpenTech/redis/pull/210, with a few more tweaks.
win-2.8.19.1
2015-05-04 18:55:53 +02:00
Alexis Campailla e28dbb53ad Move MSI to a separate solution
Move MSI to a separate solution, so that builing RedisServer.sln
doesn't require having the Wix Toolset installed.
2015-05-04 18:40:34 +02:00
Alexis Campailla 4a9a87bb20 Updated MSI version number to 2.8.19.1 2015-05-04 08:24:40 -07:00
Alexis Campailla 7b336b19fd Updated license in source tree and MSI 2015-05-04 08:24:35 -07:00
Alexis Campailla 21f69fdf7c msi: added/renamed configuration files
Added redis.windows.conf
Renamed redis.service.conf to redis.windows-service.conf
2015-05-04 08:24:31 -07:00
Alexis Campailla 28735c1d38 Add full license text for Wix UI components 2015-05-04 08:24:26 -07:00
Alexis Campailla d835f244ad MSI fixes & tweaks 2015-05-04 08:24:21 -07:00
Alexis Campailla 9a8aade257 Fix msi build 2015-05-04 08:24:16 -07:00
NickMRamirez 23fdac78a6 Added redis.service.conf that turns on logging to the Windows event viewer. This required that we also log to a file with the logfile setting, otherwise messages are not written to the event viewer...probably a mishandling of Windows OS. The event viewer requires a messages resource in the form of a DLL, so I updated the Win32_Interop project to have a custom build step to compile EventLog.res into EventLog.dll. Updated the WiX project to create the Windows event source and also the directory where the event log file will be written. 2015-05-04 08:24:12 -07:00
NickMRamirez 454a4a920b Updated Word doc to include information about how the Windows service works if installed with the MSI. 2015-05-04 08:24:07 -07:00
NickMRamirez 8e4dcd5360 Added a dialog to the installer that lets the user customize the port and firewall exception. The port will update the config file via a new WiX Custom action project. 2015-05-04 08:24:02 -07:00
NickMRamirez a38bbe72e1 Added a UI to the WiX installer. Also, added license text and branded logo images for Redis. 2015-05-04 08:23:58 -07:00
NickMRamirez a4d2df10b8 Removed WiX compiler binaries. We'll be relying on the developer to have installed WiX instead. 2015-05-04 08:23:53 -07:00
NickMRamirez 7e68545292 Removing x86 WiX installer 2015-05-04 08:23:47 -07:00
NickMRamirez c5db422f6d Removed CONFIG WiX property from install command-line instructions. It might be better to use the default and set the config path later. 2015-05-04 08:23:42 -07:00
NickMRamirez c998816b65 Updated path to WixFirewallExentsion.dll 2015-05-04 08:23:38 -07:00
NickMRamirez 87835eb268 Adding missing WiX compiler and linker .exe files that were ignored by .gitignore 2015-05-04 08:23:33 -07:00
NickMRamirez d5119c4882 Added firewall exception for Redis service 2015-05-04 08:23:13 -07:00
NickMRamirez 733dd88d70 Added WiX binaries to source control for 64-bit Windows Installer so that devs won't have to install WiX. 2015-05-04 08:17:14 -07:00
NickMRamirez 437a9c35ce Added a 64-bit Windows installer 2015-05-04 08:16:03 -07:00
NickMRamirez 9bc6c6eeb6 Added WiX binaries to source control so that dev doesn't have to install WiX. 2015-05-04 08:14:58 -07:00
NickMRamirez 1167266815 Initial commit of WiX installer for Redis 2015-05-04 08:14:11 -07:00
Alexis Campailla 05e0ac85cc Fix tabs in Win32_QFork.cpp 2015-05-01 13:23:15 +02:00
Alexis Campailla 0481910ed0 Fix Windows version check
Correclty check for Windows 8 version (6.2), in case this code
path gets re-enabled again.
Note that Windows 10 has version number 10.0, so it would finally
take the code path originally intended for Windows 8 and higher.
2015-05-01 13:12:02 +02:00
Alexis Campailla 624163165b Disabling use of PAGE_REVERT_TO_FILE_MAP
VirtualProtect is failing with ERROR_INVALID_PARAMETER.
It's possible that this code path never worked because it is
checking for Windows version 8.0. Windows 8's version number is 6.2,
not 8.0.

Conflicts:
	src/Win32_Interop/Win32_QFork.cpp
2015-05-01 13:11:02 +02:00
Alexis Campailla 6076412a35 Qfork: RejoinCOWPages issue with swapping
Fix for https://github.com/MSOpenTech/redis/issues/167

RejoinCOWPages used to call QueryWorkingSetEx to figure out
which pages had been dirtied since the memory map was protected
with PAGE_WRITECOPY. But dirty pages that had been swapped out to
the system page file would be reported as not valid
(VirtualAttributes.Valid == 0) and so we wouldn't restore them into
the file map.
QueryWorkingSetEx only gives information about pages that are in the
working set at the time it is called. Pages can be forced into the
working set using VirtualLock, but that seems like a potentially
risky / expensive solution.
I implemented a solution that uses VirtualQuery to find out which
regions have changed protection from PAGE_WRITECOPY.
2015-05-01 12:40:15 +02:00
Alexis Campailla 8c5b7fd244 fork: let child terminate without requiring signal from parent
The quasi-fork child was waiting for an explicit signal from the parent
before terminating. This synchronization step is unnecessary, and
it makes the child hang if the parent terminates for any reason
while the fork operation is in progress.
In that scenario, and consistently with the Posix version, the child
now completes the fork operation and terminates freely when done.

This fixes https://github.com/MSOpenTech/redis/issues/228
2015-03-23 13:40:27 -07:00
Alexis Campailla 92abb1268b set errno on socket write error
Also introducing some utility functions for translating Windows
error codes to errno error codes.
This part was adapted from existing code in libuv:
https://github.com/libuv/libuv/blob/v1.x/src/win/error.c
2015-03-09 14:47:32 +01:00
Alexis Campailla 0f79d72396 Workaround for getpeername() issue
getpeername() is returning invalid addresses on ipv6 sockets accepted
with AcceptEx, filling only 16 bytes of the address structure.
Providing a workaround by saving the remote address returned by
GetAcceptExSockaddrs, which is valid.
win-2.8.19 win-2.8.19-rc1
2015-02-25 12:27:07 +01:00
Alexis Campailla 322d708f21 getpeername returns 0 on error 2015-02-24 18:11:23 +01:00
Alexis Campailla c3f758c923 Update redis.windows.conf 2015-02-24 18:09:07 +01:00
Alexis Campailla fe6fff14d1 redlis-cli crash on non-printable chars
The debug version of isprint() raises an assert when the input value
is not EOF or in the range 0 through 0xFF, inclusive.
The trick is that the char value needs to be passed as unsigned,
before being converted to int.
2015-02-24 17:16:52 +01:00
Alexis Campailla a39e4ae65d Handle absolute paths for config files 2015-02-24 16:28:33 +01:00
Alexis Campailla b02a6d191d Minor documenation bug (confusing dir and heapdir)
See https://github.com/MSOpenTech/redis/issues/218
2015-02-24 15:31:11 +01:00
Scott Ganyo 1fe315d6d9 Update README.md 2015-02-13 14:24:44 +01:00
Robert Hahn b167e972d2 issue 180: fixed handling of the alt gr key on international keyboards 2015-02-13 14:09:50 +01:00
Alexis Campailla 768e061172 Abort on OOM
It looks like https://github.com/MSOpenTech/redis/commit/62cc0e320d9afe28cc44a642d9e8f5e1c0e5d775#diff-07ce465381b20e496c6fb51bedd3491fR3105
inadvertently made the Windows side not abort when an OOM occurs.
win-2.8.19-pre2
2015-02-13 03:03:58 +01:00
Alexis Campailla b93dc1c727 Port diskless replication to Windows
During diskless replication the master forks a child, which on posix
simply inherits the socket file descriptors for the connections to
the slaves.
A unix pipe is also used for the child to report the results back
to the master.

The bulk of the porting work is in making sure that the socket
file descriptors and pipe file descriptor are propagated correctly
from the master to its child.
2015-02-06 16:08:50 +01:00
Alexis Campailla b713fda58f Remove useless qfork synchronization event
There is no apparent reason for the child to wait for the
startOperation event to be signaled.
2015-02-06 16:06:53 +01:00
Alexis Campailla 5677f532f8 Refactor BeginForkOperation
Refactor BeginForkOperation in preparation for diskless replication:
- Separate copying of operation data and child process creation
- Provide specific entry points for each operation type
2015-02-06 15:42:47 +01:00
orangemocha 3942d52957 Merge pull request #216 from MSOpenTech/orangemocha-CrashOnLargeInsert
Bug fixes
2015-02-02 16:40:01 +01:00
Alexis Campailla 9fd03a982d Fix AV in AllocHeapBlock 2015-02-02 16:10:05 +01:00
Alexis Campailla bc8d23c64a Merge branch release-2.8.17 into 2.8 2015-01-06 14:40:16 -05:00
Alexis Campailla 7796c039cb Fix redis-cli pipe mode
Pipe mode was broken due to CRT's translation of CRLF sequences.
win-2.8.17.3
2015-01-02 17:48:09 -05:00
Alexis Campailla 69ff2feb70 Merge version 2.8.19 from antirez into 2.8 win-2.8.19-pre1 2014-12-26 16:14:57 +01:00
Alexis Campailla bc2ce9d6e0 Merge version 2.8.18 from antirez into 2.8
Conflicts:
	deps/linenoise/linenoise.c
	deps/lua/src/lua_cjson.c
	redis.conf
	src/anet.c
	src/config.c
	src/networking.c
	src/object.c
	src/rdb.c
	src/redis.c
	src/redis.h
	src/replication.c
	tests/support/server.tcl
2014-12-26 15:20:36 +01:00
Alexis Campailla 8d5716c03e Merge branch 'release-2.8.17' into 2.8
Conflicts:
	bin/release/redis-2.8.17.zip
2014-12-24 00:20:37 +01:00
Alexis Campailla a87bca3e7b replaced // comments #2150 2014-12-24 00:18:58 +01:00