Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Master-slave synchronization problems on big dbs #957

Closed
bakwc opened this issue Feb 19, 2013 · 19 comments
Closed

Master-slave synchronization problems on big dbs #957

bakwc opened this issue Feb 19, 2013 · 19 comments

Comments

@bakwc
Copy link

bakwc commented Feb 19, 2013

On synchronizing with master db got errors: http://pastebin.com/vwb5aTS1
Reproduced on sync with master db under load (lua scripts and ~ 100 queries per second).

@antirez
Copy link
Contributor

antirez commented Feb 19, 2013

Hello, thanks for reporting, please provide INFO output of the master instance. Cheers.

@bakwc
Copy link
Author

bakwc commented Feb 19, 2013

http://pastebin.com/XLE9e954 - it's from test server where failed was reproduced
http://pastebin.com/x0Gx8SG7 - it's from real server under load

@antirez
Copy link
Contributor

antirez commented Feb 20, 2013

Hey, thanks for the additional info. I see you are using FreeBSD, this is very likely a FreeBSD specific issue, I probably need some help from you in order to understand what the problem is. To start it would be very helpful if you could do the following:

File syncio.c, in syncRead():

       if (nread == -1) {
            if (errno != EAGAIN) return -1;
        } else {

Change it into

       if (nread == -1) {
            printf("SYNCREAD: [%d - %d] %s\n", EAGAIN, errno, strerror(errno));
            if (errno != EAGAIN) return -1;
        } else {

After this change try again and send me the output. Thanks!

@bakwc
Copy link
Author

bakwc commented Feb 25, 2013

[83823] 25 Feb 15:11:54.431 # Server started, Redis version 2.6.10
[83823] 25 Feb 15:11:54.431 * The server is now ready to accept connections on port 9876
[83823] 25 Feb 15:12:16.766 * SLAVE OF nebula1:6379 enabled (user request)
[83823] 25 Feb 15:12:17.588 * Connecting to MASTER...
[83823] 25 Feb 15:12:17.590 * MASTER <-> SLAVE sync started
[83823] 25 Feb 15:12:17.591 * Non blocking connect for SYNC fired the event.
[83823] 25 Feb 15:12:17.852 * Master replied to PING, replication can continue...
SYNCREAD: [35 - 35] Resource temporarily unavailable

@bakwc
Copy link
Author

bakwc commented Feb 25, 2013

http://pastebin.com/UQhVvANn here is more detailed. SYNCREAD appears at the same time as "Master replied to PING, replication can continue..."
P. S. I recompiled only slave. Should I do it in master also?

@charsyam
Copy link
Contributor

@bakwc @antirez

I think it is because this code in readSyncBulkPayload() in replication.c

    nread = read(fd,buf,readlen);
    if (nread <= 0) {
        redisLog(REDIS_WARNING,"I/O error trying to sync with MASTER: %s",
            (nread == -1) ? strerror(errno) : "connection lost");
        replicationAbortSyncTransfer();
        return;
    }

@charsyam
Copy link
Contributor

@bakwc could you test this code?

charsyam@8de45f8

@antirez
Copy link
Contributor

antirez commented Feb 25, 2013

@charsyam it is not possible that the problem is what you stated, so @bakwc does not need to test this code.

If you look at the logs, you'll read:

 # I/O error trying to sync with MASTER: connection lost

connection lost is only printed when the return value is 0, that is not what your additional commit handles.

@antirez
Copy link
Contributor

antirez commented Feb 25, 2013

@bakwc before to continue, it seems realistic to you to be able to provide shell access in the test environment to me? Otherwise if this is not possible I'll create a branch with much more debugging information printed by Redis.

What is strange is that what was supposed to shed some light on the issue was a bit useless as the new error is now in a different part of the code, and apparently the connection is lost while the data transfer is in progress, that I've no idea why it happens at all.

So either I need to directly mess with the code in the system where this happens or to provide a much more debug-intensive version of Redis that you can try to see what happens.

Thanks!

@charsyam
Copy link
Contributor

@antirez . Yes, You're right. but it can also make another problem when EAGAIN happens.
Don't you think so?

@antirez
Copy link
Contributor

antirez commented Feb 25, 2013

@charsyam in theory this should never happen because the signal handler called us because there is more data to read on the socket, we should be able to read at least a single byte.

@antirez
Copy link
Contributor

antirez commented Feb 25, 2013

Sorry the event handler, not signal.

@charsyam
Copy link
Contributor

@antirez Thank you for your teaching. I misunderstand the source.

@antirez
Copy link
Contributor

antirez commented Feb 25, 2013

no prob at all, however it is possible that we'll find some error in the code as it is unlikely that this is a FreeBSD-specific issue in so well-understood networking code and APIs. Probably I mis-handle something.

@bakwc
Copy link
Author

bakwc commented Feb 25, 2013

@antirez sor, can't provide access ( You may try to reproduce by installing freebsd somewhere and try to sync, but I'm not sure if it is reproduced on little load / memory usage.
You can make version with more debug info, i can use it as master/slave and send you output.

@bakwc
Copy link
Author

bakwc commented Mar 5, 2013

So, could you make a debug branch please?

@bakwc
Copy link
Author

bakwc commented Apr 21, 2013

The problem was with little client output buffer for slaves. Full repclication take ~10 minutes, new data in slave buffer was more than 64 mb after ~3 minutes, connection was droped by soft (or hard) limit.
Solved by added this to config:
client-output-buffer-limit slave 4096mb 2048mb 60
I should read documentation carefully next time ^^

@bakwc bakwc closed this as completed Apr 21, 2013
@mouliveera
Copy link

We have some issues with redis:

1467:S 22 Feb 11:12:43.771 * Master replied to PING, replication can continue...
1467:S 22 Feb 11:12:43.775 * Partial resynchronization not possible (no cached master)
1467:S 22 Feb 11:12:46.184 * Full resync from master: 9304d314d029c32e6fe268e9f35c13ec937b0b3e:9077166633026
1467:S 22 Feb 11:13:47.902 # Timeout receiving bulk data from MASTER... If the problem persists try to set the 'repl-timeout' parameter in redis.conf to a larger value.
1467:S 22 Feb 11:13:47.902 * Connecting to MASTER prod-redis-backend01.r4e:9696
1467:S 22 Feb 11:13:47.906 * MASTER <-> SLAVE sync started
1467:S 22 Feb 11:13:47.907 * Non blocking connect for SYNC fired the event.
1467:S 22 Feb 11:13:47.908 * Master replied to PING, replication can continue...
1467:S 22 Feb 11:13:47.910 * Partial resynchronization not possible (no cached master)
1467:S 22 Feb 11:13:51.322 * Full resync from master: 9304d314d029c32e6fe268e9f35c13ec937b0b3e:9077213295690
1467:S 22 Feb 11:14:49.534 # I/O error reading bulk count from MASTER: Resource temporarily unavailable
1467:S 22 Feb 11:14:50.040 * Connecting to MASTER prod-redis-backend01.r4e:9696

Sometimes, slave is showing timeout and sometimes it is erroring I/O error. updated repl-timeout on redis.conf, but still no luck.

Would you guys suggest for the fix.

@weldpua2008
Copy link

weldpua2008 commented Mar 6, 2018

Same problem on 4.0.2

2 of 68 Slaves fails with


22324:S 06 Mar 04:28:33.119 - Accepted 127.0.0.1:36682
22324:S 06 Mar 04:28:33.120 - Client closed connection
22324:S 06 Mar 04:36:27.053 # I/O error trying to sync with MASTER: connection lost
22324:S 06 Mar 04:36:27.486 * Connecting to MASTER insight:6398
22324:S 06 Mar 04:36:27.487 * MASTER <-> SLAVE sync started
22324:S 06 Mar 04:36:27.584 * Non blocking connect for SYNC fired the event.
22324:S 06 Mar 04:36:27.682 * Master replied to PING, replication can continue...
22324:S 06 Mar 04:36:27.878 * Partial resynchronization not possible (no cached master)
22324:S 06 Mar 04:36:27.993 * Full resync from master: 2bd94361dcad53fa49f5be885520f745668149b9:2387219204099
22324:S 06 Mar 04:36:30.459 * MASTER <-> SLAVE sync: receiving 89603397 bytes from master

Slave:

127.0.0.1:6397> info
# Server
redis_version:4.0.2
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:84afd81a0e0a492b
redis_mode:standalone
os:Linux 2.6.32-696.13.2.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:sync-builtin
gcc_version:4.4.7
process_id:130009
run_id:7d2f570967453557e39cbb26c922ae8c0affc87d
tcp_port:6397
uptime_in_seconds:3047
uptime_in_days:0
hz:10
lru_clock:10379844
# Clients
connected_clients:5
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:401217872
used_memory_human:382.63M
used_memory_rss:406609920
used_memory_rss_human:387.77M
used_memory_peak:925600432
used_memory_peak_human:882.72M
used_memory_peak_perc:43.35%
used_memory_overhead:29477630
used_memory_startup:761704
used_memory_dataset:371740242
used_memory_dataset_perc:92.83%
total_system_memory:135211606016
total_system_memory_human:125.93G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:1.01
mem_allocator:jemalloc-3.6.0
active_defrag_running:0
lazyfree_pending_objects:0

# Persistence
loading:0
rdb_changes_since_last_save:56
rdb_bgsave_in_progress:0
rdb_last_save_time:1520326237
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

# Stats
total_connections_received:74291
total_commands_processed:149321
instantaneous_ops_per_sec:46
total_net_input_bytes:380046773
total_net_output_bytes:73733002
instantaneous_input_kbps:119.11
instantaneous_output_kbps:23.54
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:1873
keyspace_misses:1377
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

# Replication
role:slave
master_host:insight.mastermind.algovid.com
master_port:6398
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:1
slave_repl_offset:1
master_sync_left_bytes:52481233
master_sync_last_io_seconds_ago:0
master_link_down_since_seconds:331
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:2bd94361dcad53fa49f5be885520f745668149b9
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2387044962450
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:524288000
repl_backlog_first_byte_offset:2387044940176
repl_backlog_histlen:22275

# CPU
used_cpu_sys:10.07
used_cpu_user:5.87
used_cpu_sys_children:0.00
used_cpu_user_children:0.00

# Cluster
cluster_enabled:0

# Keyspace
db0:keys=341967,expires=272149,avg_ttl=0
127.0.0.1:6397>

Master

127.0.0.1:6398> info
# Server
redis_version:4.0.2
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:84afd81a0e0a492b
redis_mode:standalone
os:Linux 2.6.32-573.8.1.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:sync-builtin
gcc_version:4.4.7
process_id:30570
run_id:55a0bb7df937b9484a9c9b939172da2c5450980c
tcp_port:6398
uptime_in_seconds:11389004
uptime_in_days:131
hz:10
lru_clock:10379934
executable:/usr/bin/redis-server
config_file:/opt/redis/conf.d/redis.proxy.conf

# Clients
connected_clients:867
client_longest_output_list:4198
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:587505568
used_memory_human:560.29M
used_memory_rss:656171008
used_memory_rss_human:625.77M
used_memory_peak:3526816040
used_memory_peak_human:3.28G
used_memory_peak_perc:16.66%
used_memory_overhead:153480263
used_memory_startup:762152
used_memory_dataset:434025305
used_memory_dataset_perc:73.97%
total_system_memory:67441184768
total_system_memory_human:62.81G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:1.12
mem_allocator:jemalloc-3.6.0
active_defrag_running:0
lazyfree_pending_objects:0

# Persistence
loading:0
rdb_changes_since_last_save:436596
rdb_bgsave_in_progress:0
rdb_last_save_time:1520328990
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:3
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:36560896
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

# Stats
total_connections_received:289477593
total_commands_processed:26679937886
instantaneous_ops_per_sec:1153
total_net_input_bytes:2719861980729
total_net_output_bytes:134562863485449
instantaneous_input_kbps:53.01
instantaneous_output_kbps:3609.41
rejected_connections:196351
sync_full:98754
sync_partial_ok:20
sync_partial_err:1146
expired_keys:4880745
evicted_keys:0
keyspace_hits:1477010667
keyspace_misses:1603968707
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:16816
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

# Replication
role:master
connected_slaves:68
slave0:ip=10.149.165.15,port=6397,state=online,offset=2387251175447,lag=1
slave1:ip=10.149.165.53,port=6397,state=online,offset=2387251178532,lag=1
slave2:ip=10.149.165.9,port=6397,state=online,offset=2387251185368,lag=0
slave3:ip=10.149.165.13,port=6397,state=online,offset=2387251169900,lag=1
slave4:ip=10.149.165.38,port=6397,state=online,offset=2387251157213,lag=1
slave5:ip=10.149.165.51,port=6397,state=online,offset=2387251186648,lag=0
slave6:ip=10.149.165.14,port=6397,state=online,offset=2387251173928,lag=1
slave7:ip=10.149.165.30,port=6397,state=online,offset=2387251157213,lag=1
slave8:ip=10.149.165.56,port=6397,state=online,offset=2387251152797,lag=1
slave9:ip=10.149.165.27,port=6397,state=online,offset=2387251172512,lag=1
slave10:ip=10.149.165.57,port=6397,state=online,offset=2387251149947,lag=1
slave11:ip=10.149.165.26,port=6397,state=online,offset=2387251150041,lag=1
slave12:ip=10.149.165.34,port=6397,state=online,offset=2387251171894,lag=1
slave13:ip=10.149.165.42,port=6397,state=online,offset=2387251144626,lag=1
slave14:ip=10.149.165.18,port=6397,state=online,offset=2387251149186,lag=1
slave15:ip=10.149.165.19,port=6397,state=online,offset=2387251182375,lag=0
slave16:ip=10.149.165.5,port=6397,state=online,offset=2387251152749,lag=1
slave17:ip=10.149.165.29,port=6397,state=online,offset=2387251179382,lag=1
slave18:ip=10.149.165.55,port=6397,state=online,offset=2387251155031,lag=1
slave19:ip=10.149.165.17,port=6397,state=online,offset=2387251179430,lag=0
slave20:ip=10.149.165.35,port=6397,state=online,offset=2387251187934,lag=0
slave21:ip=10.149.165.20,port=6397,state=online,offset=2387251151891,lag=1
slave22:ip=10.149.165.16,port=6397,state=online,offset=2387251185082,lag=0
slave23:ip=10.149.165.33,port=6397,state=online,offset=2387251162531,lag=1
slave24:ip=10.149.165.4,port=6397,state=online,offset=2387251142259,lag=1
slave25:ip=10.149.165.8,port=6397,state=online,offset=2387251154177,lag=1
slave26:ip=10.149.165.50,port=6397,state=online,offset=2387251152175,lag=1
slave27:ip=10.149.165.43,port=6397,state=online,offset=2387251167712,lag=1
slave28:ip=10.149.165.44,port=6397,state=online,offset=2387251180664,lag=0
slave29:ip=10.149.165.48,port=6397,state=online,offset=2387251173504,lag=1
slave30:ip=10.148.121.7,port=6397,state=online,offset=2387251167427,lag=1
slave31:ip=10.148.121.5,port=6397,state=online,offset=2387251153510,lag=1
slave32:ip=10.149.165.21,port=6397,state=online,offset=2387251184893,lag=0
slave33:ip=10.149.165.49,port=6397,state=online,offset=2387251179764,lag=1
slave34:ip=10.149.165.22,port=6397,state=online,offset=2387251188315,lag=0
slave35:ip=10.149.165.28,port=6397,state=online,offset=2387251163437,lag=1
slave36:ip=10.149.165.10,port=6397,state=online,offset=2387251168139,lag=1
slave37:ip=10.148.121.14,port=6397,state=online,offset=2387251189784,lag=0
slave38:ip=10.148.121.15,port=6397,state=online,offset=2387251174024,lag=1
slave39:ip=10.148.121.19,port=6397,state=online,offset=2387251142259,lag=1
slave40:ip=10.148.121.20,port=6397,state=online,offset=2387251164477,lag=1
slave41:ip=10.148.121.16,port=6397,state=online,offset=2387251158872,lag=1
slave42:ip=10.148.121.18,port=6397,state=online,offset=2387251161442,lag=1
slave43:ip=10.148.121.17,port=6397,state=online,offset=2387251140352,lag=1
slave44:ip=10.148.121.21,port=6397,state=online,offset=2387251177392,lag=1
slave45:ip=10.148.121.22,port=6397,state=online,offset=2387251144957,lag=1
slave46:ip=10.149.165.46,port=6397,state=online,offset=2387251182375,lag=0
slave47:ip=10.149.165.47,port=6397,state=online,offset=2387251134134,lag=1
slave48:ip=10.149.165.41,port=6397,state=online,offset=2387251145432,lag=1
slave49:ip=10.149.165.6,port=6397,state=online,offset=2387251163531,lag=1
slave50:ip=10.149.165.25,port=6397,state=online,offset=2387251150088,lag=1
slave51:ip=10.149.165.40,port=6397,state=online,offset=2387251143491,lag=1
slave52:ip=10.149.165.60,port=6397,state=online,offset=2387251150517,lag=1
slave53:ip=10.149.165.37,port=6397,state=online,offset=2387251182375,lag=0
slave54:ip=10.149.165.54,port=6397,state=online,offset=2387251145862,lag=1
slave55:ip=10.149.165.36,port=6397,state=online,offset=2387251172512,lag=1
slave56:ip=10.149.165.31,port=6397,state=online,offset=2387251168567,lag=1
slave57:ip=10.149.165.32,port=6397,state=online,offset=2387251172937,lag=1
slave58:ip=10.149.165.45,port=6397,state=online,offset=2387251165711,lag=1
slave59:ip=10.148.121.8,port=6397,state=online,offset=2387251144153,lag=1
slave60:ip=10.149.165.52,port=6397,state=online,offset=2387251176917,lag=1
slave61:ip=10.148.121.9,port=6397,state=online,offset=2387251172795,lag=1
slave62:ip=10.148.121.6,port=6397,state=online,offset=2387251147575,lag=1
slave63:ip=10.149.165.58,port=6397,state=online,offset=2387251165143,lag=1
slave64:ip=10.148.121.13,port=6397,state=online,offset=2387251157213,lag=1
slave65:ip=10.149.165.59,port=6397,state=online,offset=2387251158115,lag=1
slave66:ip=10.149.165.39,port=6397,state=send_bulk,offset=0,lag=0
slave67:ip=10.149.165.7,port=6397,state=send_bulk,offset=0,lag=0
master_replid:2bd94361dcad53fa49f5be885520f745668149b9
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2387251191735
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2387250143160
repl_backlog_histlen:1048576

# CPU
used_cpu_sys:4035690.00
used_cpu_user:876418.88
used_cpu_sys_children:39856.59
used_cpu_user_children:303180.88

# Cluster
cluster_enabled:0

# Keyspace
db0:keys=342493,expires=272655,avg_ttl=101218005

yossigo added a commit to yossigo/redis that referenced this issue May 30, 2023
b6a052fe0 Helper for setting TCP_USER_TIMEOUT socket option (redis#1188)
3fa9b6944 Add RedisModule adapter (redis#1182)
d13c091e9 Fix wincrypt symbols conflict
5d84c8cfd Add a test ensuring we don't clobber connection error.
3f95fcdae Don't attempt to set a timeout if we are in an error state.
aacb84b8d Fix typo in makefile.
563b062e3 Accept -nan per the RESP3 spec recommendation.
04c1b5b02 Fix colliding option values
4ca8e73f6 Rework searching for openssl
cd208812f Attempt to find the correct path for openssl.
011f7093c Allow specifying the keepalive interval
e9243d4f7 Cmake static or shared (redis#1160)
1cbd5bc76 Write a version file for the CMake package (redis#1165)
6f5bae8c6 fix typo
acd09461d CMakeLists.txt: respect BUILD_SHARED_LIBS
97fcf0fd1 Add sdevent adapter
ccff093bc Bump dev version for the next release cycle.
c14775b4e Prepare for v1.1.0 GA
f0bdf8405 Add support for nan in RESP3 double (redis#1133)
991b0b0b3 Add an example that calls redisCommandArgv (redis#1140)
a36686f84 CI updates (redis#1139)
8ad4985e9 fix flag reference
7583ebb1b Make freeing a NULL redisAsyncContext a no op.
2c53dea7f Update version in dev branch.
f063370ed Prepare for v1.1.0-rc1
2b069573a CI fixes in preparation of release
e1e9eb40d Add author information to release-drafter template.
afc29ee1a Update for mingw cross compile
ceb8a8815 fixed cpp build error with adapters/libhv.h
3b15a04b5 Fixup of PR734: Coverage of hiredis.c (redis#1124)
c245df9fb CMake corrections for building on Windows (redis#1122)
9c338a598 Fix PUSH handler tests for Redis >= 7.0.5
6d5c3ee74 Install on windows fixes (redis#1117)
68b29e1ad Add timeout support to libhv adapter. (redis#1109)
722e3409c Additional include directory given by pkg-config (redis#1118)
bd9ccb8c4 Use __attribute__ when building with clang on windows
5392adc26 set default SSL certificate directory
560e66486 Minor refactor
d756f68a5 Add libhv example to our standard Makefile
a66916719 Add adapters/libhv
855b48a81 Fix pkgconfig for hiredis_ssl
79ae5ffc6 Fix protocol error (redis#1106)
61b5b299f Use a windows specific keepalive function. (redis#1104)
fce8abc1c Introduce .close method for redisContextFuncs
cfb6ca881 Add REDIS_OPT_PREFER_UNSPEC (redis#1101)
cc7c35ce6 Update documentation to explain redisConnectWithOptions.
bc8d837b7 fix heap-buffer-overflow (redis#957)
ca4a0e850 uvadapter: reduce number of uv_poll_start calls
35d398c90 Fix cmake config path on Linux. CMake config files were installed to `/usr/local/share/hiredis`, which is not recognizable by `find_package()`. I'm not sure why it was set that way. Given the commit introducing it is for Windows, I keep that behavior consistent there, but fix the rest.
10c78c6e1 Add possibility to prefer IPv6, IPv4 or unspecified
1abe0c828 fuzzer: No alloc in redisFormatCommand() when fail
329eaf9ba Fix heap-buffer-overflow issue in redisvFormatCommad
eaae7321c Polling adapter requires sockcompat.h
0a5fa3dde Regression test for off-by-one parsing error
9e174e8f7 Add do while(0) protection for macros
4ad99c69a Rework asSleep to be a generic millisleep function.
75cb6c1ea Do store command timeout in the context for redisSetTimeout (redis#593)
c57cad658 CMake: remove dict.c form hiredis_sources
8491a65a9 Add Github Actions CI workflow for hiredis: Arm, Arm64, 386, windows. (redis#943)
77e4f09ea Merge pull request redis#964 from afcidk/fix-createDoubleObject
9219f7e7c Merge pull request redis#901 from devnexen/illumos_test_fix
810cc6104 Merge pull request redis#905 from sundb/master
df8b74d69 Merge pull request redis#1091 from redis/ssl-error-ub-fix
0ed6cdec3 Fix some undefined behaviour
507a6dcaa Merge pull request redis#1090 from Nordix/subscribe-oom-error
b044eaa6a Copy error to redisAsyncContext when finding subscribe cb
e0200b797 Merge pull request redis#1087 from redis/const-and-non-const-callback
6a3e96ad2 Maintain backward compatibiliy withour onConnect callback.
e7afd998f Merge pull request redis#1079 from SukkaW/drop-macos-10.15-runner
17c8fe079 Merge pull request redis#931 from kristjanvalur/pr2
b808c0c20 Merge pull request redis#1083 from chayim/ck-drafter
367a82bf0 Merge pull request redis#1085 from stanhu/ssl-improve-options-setting
71119a71d Make it possible to set SSL verify mode
dd7979ac1 Merge pull request redis#1084 from stanhu/sh-improve-ssl-docs
c71116178 Improve example for SSL initialization in README.md
5c9b6b571 Release drafter
a606ccf2a CI: use recommended `vmactions/freebsd-vm@v0`
0865c115b Merge pull request redis#1080 from Nordix/readme-corrections
f6cee7142 Fix README typos
06be7ff31 Merge pull request redis#1050 from smmir-cent/fix-cmake-version
7dd833d54 CI: bump macos runner version
f69fac769 Drop `const` on redisAsyncContext in redisConnectCallback Since the callback is now re-entrant, it can call apis such as redisAsyncDisconnect()
005d7edeb Support calling redisAsyncDisconnect from the onConnected callback, by deferring context deletion
6ed060920 Add async regression test for issue redis#931
eaa2a7ee7 Merge pull request redis#932 from kristjanvalur/pr3
2ccef30f3 Add regression test for issue redis#945
4b901d44a Initial async tests
31c91408e Polling adapter and example
8a15f4d65 Merge pull request redis#1057 from orgads/static-name
902dd047f Merge pull request redis#1054 from kristjanvalur/pr08
c78d0926b Merge pull request redis#1074 from michael-grunder/kristjanvalur-pr4
2b115d56c Whitespace
1343988ce Fix typos
47b57aa24 Add some documentation on connect/disconnect callbacks and command callbacks
a890d9ce2 Merge pull request redis#1073 from michael-grunder/kristjanvalur-pr1
f246ee433 Whitespace, style
94c1985bd Use correct type for getsockopt()
5e002bc21 Support failed async connects on windows.
5d68ad2f4 Merge pull request redis#1072 from michael-grunder/fix-redis7-unit-tests
f4b6ed289 Fix tests so they work for Redis 7.0
95a0c1283 Merge pull request redis#1058 from orgads/win64
eedb37a65 Fix warnings on Win64
47c3ecefc Merge pull request redis#1062 from yossigo/fix-push-notification-order
e23d91c97 Merge pull request redis#1061 from yossigo/update-redis-apt
34211ad54 Merge pull request redis#1063 from redis/fix-windows-tests
9957af7e3 Whitelist hiredis repo path in cygwin
b455b3381 Handle push notifications before or after reply.
aed9ce446 Use official repository for redis package.
d7683f35a Merge pull request redis#1047 from Nordix/unsubscribe-handling
7c44a9d7e Merge pull request redis#1045 from Nordix/sds-updates
dd4bf9783 Use the same name for static and shared libraries
ff57c18b9 Embed debug information in windows static lib, rather than create a .pdb file
8310ad4f5 fix cmake version
7123b87f6 Handle any pipelined unsubscribe in async
b6fb548fc Ignore pubsub replies without a channel/pattern
00b82683b Handle overflows as errors instead of asserting
64062a1d4 Catch size_t overflows in sds.c
066c6de79 Use size_t/long to avoid truncation
c6657ef65 Merge branch 'redis:master' into master
50cdcab49 Fix potential fault at createDoubleObject
fd033e983 Remove semicolon after do-while in _EL_CLEANUP
664c415e7 Illumos test fixes, error message difference fot bad hostname test.

git-subtree-dir: deps/hiredis
git-subtree-split: b6a052fe0959dae69e16b9d74449faeb1b70dbe1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants