-
Notifications
You must be signed in to change notification settings - Fork 23.6k
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
aeWait bug that may crash slave when fd exceeds 1024 #267
Comments
More interesting result: Note the first call to select returns -1, so the following line from redis-2.0 I think this caused several of our slave instances blocked and cost 100% of cpu today when |
The way to reproduce the problem with latest stable version:
2.start a slave and sync from master:
The log of slave: The slave received error from master immediately after it sent "SYNC". 3.Attach 1100 idle clients to the slave: 4.Now the log of slave shows this: The slave is blocked for 7 seconds, and gets a time out error. The strace output: |
The problem exists in latest release and can cause the slave crash:
2.start slave and attach 2200 idle clients: 3.start replication:
[404] 26 Dec 15:43:22 - Accepted 127.0.0.1:56379 [404] 26 Dec 15:43:22 # --- CLIENT LIST OUTPUT
Segmentation fault |
Fixed merging your pull request, thank you. Closing. |
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener). # HTTP URLs that Could Not Be Fixed These URLs were unable to be fixed. Please review them to see if they can be manually resolved. * [ ] http://antirez.com/news/44 (200) with 1 occurrences could not be migrated: ([https](https://antirez.com/news/44) result AnnotatedConnectException). * [ ] http://aspell.net/ (200) with 1 occurrences could not be migrated: ([https](https://aspell.net/) result AnnotatedConnectException). * [ ] http://download.redis.io/redis-stable.tar.gz (200) with 3 occurrences could not be migrated: ([https](https://download.redis.io/redis-stable.tar.gz) result AnnotatedConnectException). * [ ] http://engage.calibreapps.com/ (200) with 1 occurrences could not be migrated: ([https](https://engage.calibreapps.com/) result ConnectTimeoutException). * [ ] http://l.yimg.com/g/images/en-us/flickr-yahoo-logo.png.v3 (200) with 1 occurrences could not be migrated: ([https](https://l.yimg.com/g/images/en-us/flickr-yahoo-logo.png.v3) result 404). * [ ] http://libhugetlbfs.sourceforge.net/ (200) with 1 occurrences could not be migrated: ([https](https://libhugetlbfs.sourceforge.net/) result AnnotatedConnectException). * [ ] http://oldhome.schmorp.de/marc/liblzf.html (200) with 1 occurrences could not be migrated: ([https](https://oldhome.schmorp.de/marc/liblzf.html) result SSLHandshakeException). * [ ] http://qix.it (200) with 1 occurrences could not be migrated: ([https](https://qix.it) result AnnotatedConnectException). * [ ] http://rediska.geometria-lab.net (200) with 2 occurrences could not be migrated: ([https](https://rediska.geometria-lab.net) result SSLHandshakeException). * [ ] http://topics.io (200) with 1 occurrences could not be migrated: ([https](https://topics.io) result SSLHandshakeException). * [ ] http://web.pond.pt/ (200) with 1 occurrences could not be migrated: ([https](https://web.pond.pt/) result NotSslRecordException). * [ ] http://www.devshed.com/c/a/BrainDump/Linux-Files-and-the-Event-Poll-Interface/ (200) with 1 occurrences could not be migrated: ([https](https://www.devshed.com/c/a/BrainDump/Linux-Files-and-the-Event-Poll-Interface/) result SSLHandshakeException). * [ ] http://www.poraora.com/ (301) with 1 occurrences could not be migrated: ([https](https://www.poraora.com/) result SSLHandshakeException). * [ ] http://graphbug.com/ (301) with 1 occurrences could not be migrated: ([https](https://graphbug.com/) result AnnotatedConnectException). * [ ] http://retwis.antirez.com (302) with 2 occurrences could not be migrated: ([https](https://retwis.antirez.com) result AnnotatedConnectException). * [ ] http://antirez.com/post/redis-memcached-benchmark.html (303) with 1 occurrences could not be migrated: ([https](https://antirez.com/post/redis-memcached-benchmark.html) result AnnotatedConnectException). * [ ] http://antirez.com/post/redis-moka-awards-2011.html (303) with 1 occurrences could not be migrated: ([https](https://antirez.com/post/redis-moka-awards-2011.html) result AnnotatedConnectException). * [ ] http://antirez.com/post/redis-persistence-demystified.html (303) with 1 occurrences could not be migrated: ([https](https://antirez.com/post/redis-persistence-demystified.html) result AnnotatedConnectException). * [ ] http://antirez.com/post/update-on-memcached-redis-benchmark.html (303) with 1 occurrences could not be migrated: ([https](https://antirez.com/post/update-on-memcached-redis-benchmark.html) result AnnotatedConnectException). * [ ] http://devblog.bu.mp/how-we-use-redis-at-bump (404) with 1 occurrences could not be migrated: ([https](https://devblog.bu.mp/how-we-use-redis-at-bump) result SSLHandshakeException). * [ ] http://showmetheco.de/articles/2011/1/using-perl-mojolicious-and-redis-in-a-real-world-asynchronous-application.html (404) with 1 occurrences could not be migrated: ([https](https://showmetheco.de/articles/2011/1/using-perl-mojolicious-and-redis-in-a-real-world-asynchronous-application.html) result SSLHandshakeException). # Fixed URLs ## Fixed But Review Recommended These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended. * [ ] http://www.squeaksource.com/Redis.html (302) with 1 occurrences migrated to: /@cpavrZLip1SN2gzC/NeRH3bgR ([https](https://www.squeaksource.com/Redis.html) result IllegalArgumentException). * [ ] http://shopsquad.com/ (302) with 1 occurrences migrated to: https://undeveloped.com/buy-domain/.com/shopsquad.com?redirected=true ([https](https://shopsquad.com/) result SSLHandshakeException). * [ ] http://www.swarmiq.com/ (302) with 1 occurrences migrated to: https://www.afternic.com/forsale/swarmiq.com?utm_source=TDFS_DASLNC&utm_medium=DASLNC&utm_campaign=TDFS_DASLNC&traffic_type=TDFS_DASLNC&traffic_id=daslnc& ([https](https://www.swarmiq.com/) result ConnectTimeoutException). * [ ] http://pennyace.com/ (302) with 1 occurrences migrated to: https://www.hugedomains.com/domain_profile.cfm?d=pennyace&e=com ([https](https://pennyace.com/) result ConnectTimeoutException). * [ ] http://forrst.com (ConnectTimeoutException) with 1 occurrences migrated to: https://forrst.com ([https](https://forrst.com) result ConnectTimeoutException). * [ ] http://heywatch.com (ConnectTimeoutException) with 1 occurrences migrated to: https://heywatch.com ([https](https://heywatch.com) result ConnectTimeoutException). * [ ] http://www.canonware.com/jemalloc/ (ConnectTimeoutException) with 1 occurrences migrated to: https://www.canonware.com/jemalloc/ ([https](https://www.canonware.com/jemalloc/) result ConnectTimeoutException). * [ ] http://www.darkcurse.com (ConnectTimeoutException) with 1 occurrences migrated to: https://www.darkcurse.com ([https](https://www.darkcurse.com) result ConnectTimeoutException). * [ ] http://www.mig33.com (ConnectTimeoutException) with 1 occurrences migrated to: https://www.mig33.com ([https](https://www.mig33.com) result ConnectTimeoutException). * [ ] http://developers.diggstatic.com/sites/all/themes/about/img/footer_logo.jpg (UnknownHostException) with 1 occurrences migrated to: https://developers.diggstatic.com/sites/all/themes/about/img/footer_logo.jpg ([https](https://developers.diggstatic.com/sites/all/themes/about/img/footer_logo.jpg) result UnknownHostException). * [ ] http://gomogu.org (UnknownHostException) with 1 occurrences migrated to: https://gomogu.org ([https](https://gomogu.org) result UnknownHostException). * [ ] http://lloogg.com (UnknownHostException) with 1 occurrences migrated to: https://lloogg.com ([https](https://lloogg.com) result UnknownHostException). * [ ] http://localshow.tv/ (UnknownHostException) with 1 occurrences migrated to: https://localshow.tv/ ([https](https://localshow.tv/) result UnknownHostException). * [ ] http://redis-rb.keyvalue.org (UnknownHostException) with 1 occurrences migrated to: https://redis-rb.keyvalue.org ([https](https://redis-rb.keyvalue.org) result UnknownHostException). * [ ] http://retwisj.cloudfoundry.com/ (UnknownHostException) with 1 occurrences migrated to: https://retwisj.cloudfoundry.com/ ([https](https://retwisj.cloudfoundry.com/) result UnknownHostException). * [ ] http://retwisrb.danlucraft.com/ (UnknownHostException) with 1 occurrences migrated to: https://retwisrb.danlucraft.com/ ([https](https://retwisrb.danlucraft.com/) result UnknownHostException). * [ ] http://rubyminds.com (UnknownHostException) with 1 occurrences migrated to: https://rubyminds.com ([https](https://rubyminds.com) result UnknownHostException). * [ ] http://www.mrkris.com/ (UnknownHostException) with 1 occurrences migrated to: https://www.mrkris.com/ ([https](https://www.mrkris.com/) result UnknownHostException). * [ ] http://www.thematchfixer.com/ (UnknownHostException) with 1 occurrences migrated to: https://www.thematchfixer.com/ ([https](https://www.thematchfixer.com/) result UnknownHostException). * [ ] http://vidiowiki.com (403) with 1 occurrences migrated to: https://vidiowiki.com ([https](https://vidiowiki.com) result 403). * [ ] http://mediacdn.disqus.com/1294274648/img/disqus-logo.png (301) with 1 occurrences migrated to: https://a.disquscdn.com/1294274648/img/disqus-logo.png ([https](https://mediacdn.disqus.com/1294274648/img/disqus-logo.png) result 404). * [ ] http://bretthoerner.com/2011/2/21/redis-at-disqus/ (404) with 1 occurrences migrated to: https://bretthoerner.com/2011/2/21/redis-at-disqus/ ([https](https://bretthoerner.com/2011/2/21/redis-at-disqus/) result 404). * [ ] http://qi4j.org/extension-es-redis.html (301) with 1 occurrences migrated to: https://polygene.apache.org/extension-es-redis.html ([https](https://qi4j.org/extension-es-redis.html) result 404). * [ ] http://sstatic.net/stackoverflow/img/logo.png (404) with 1 occurrences migrated to: https://sstatic.net/stackoverflow/img/logo.png ([https](https://sstatic.net/stackoverflow/img/logo.png) result 404). * [ ] http://www.engineyard.com/images/logo.png (301) with 1 occurrences migrated to: https://www.engineyard.com/images/logo.png ([https](https://www.engineyard.com/images/logo.png) result 404). * [ ] http://www.redhat.com/magazine/001nov04/features/vm/ (302) with 1 occurrences migrated to: https://www.redhat.com/magazine/001nov04/features/vm/ ([https](https://www.redhat.com/magazine/001nov04/features/vm/) result 404). * [ ] http://www.telefonica.com/es/digital/html/home/ (301) with 1 occurrences migrated to: https://www.telefonica.com/es/digital/html/home/ ([https](https://www.telefonica.com/es/digital/html/home/) result 404). * [ ] http://www.socialreviver.net/ (301) with 1 occurrences migrated to: https://www.socialreviver.net/ ([https](https://www.socialreviver.net/) result 503). ## Fixed Success These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended. * [ ] http://authoritylabs.com/ with 1 occurrences migrated to: https://authoritylabs.com/ ([https](https://authoritylabs.com/) result 200). * [ ] http://bitbucket.org/videlalvaro/redis-haskell/src with 1 occurrences migrated to: https://bitbucket.org/videlalvaro/redis-haskell/src ([https](https://bitbucket.org/videlalvaro/redis-haskell/src) result 200). * [ ] http://bitbucket.org/videlalvaro/redis-haskell/wiki/Home with 1 occurrences migrated to: https://bitbucket.org/videlalvaro/redis-haskell/wiki/Home ([https](https://bitbucket.org/videlalvaro/redis-haskell/wiki/Home) result 200). * [ ] http://bradjasper.com/ with 1 occurrences migrated to: https://bradjasper.com/ ([https](https://bradjasper.com/) result 200). * [ ] http://check-host.net/ with 1 occurrences migrated to: https://check-host.net/ ([https](https://check-host.net/) result 200). * [ ] http://dormando.livejournal.com/525147.html with 1 occurrences migrated to: https://dormando.livejournal.com/525147.html ([https](https://dormando.livejournal.com/525147.html) result 200). * [ ] http://en.wikipedia.org/wiki/Comparison_of_file_systems with 1 occurrences migrated to: https://en.wikipedia.org/wiki/Comparison_of_file_systems ([https](https://en.wikipedia.org/wiki/Comparison_of_file_systems) result 200). * [ ] http://en.wikipedia.org/wiki/Publish/subscribe with 1 occurrences migrated to: https://en.wikipedia.org/wiki/Publish/subscribe ([https](https://en.wikipedia.org/wiki/Publish/subscribe) result 200). * [ ] http://en.wikipedia.org/wiki/Unix_time with 1 occurrences migrated to: https://en.wikipedia.org/wiki/Unix_time ([https](https://en.wikipedia.org/wiki/Unix_time) result 200). * [ ] http://favstar.fm with 1 occurrences migrated to: https://favstar.fm ([https](https://favstar.fm) result 200). * [ ] http://github.com/Shumkov/Rediska with 1 occurrences migrated to: https://github.com/Shumkov/Rediska ([https](https://github.com/Shumkov/Rediska) result 200). * [ ] http://github.com/antirez/redis with 1 occurrences migrated to: https://github.com/antirez/redis ([https](https://github.com/antirez/redis) result 200). * [ ] http://github.com/antirez/redis-tools with 1 occurrences migrated to: https://github.com/antirez/redis-tools ([https](https://github.com/antirez/redis-tools) result 200). * [ ] http://github.com/antirez/redis/issues/141 with 1 occurrences migrated to: redis/redis#141 ([https](redis/redis#141) result 200). * [ ] http://github.com/antirez/redis/issues/267 with 1 occurrences migrated to: redis/redis#267 ([https](redis/redis#267) result 200). * [ ] http://github.com/antirez/redis/issues/460 with 1 occurrences migrated to: redis/redis#460 ([https](redis/redis#460) result 200). * [ ] http://github.com/antirez/redis/raw/2.2/redis.conf with 2 occurrences migrated to: https://github.com/antirez/redis/raw/2.2/redis.conf ([https](https://github.com/antirez/redis/raw/2.2/redis.conf) result 200). * [ ] http://github.com/chriso/redback with 1 occurrences migrated to: https://github.com/chriso/redback ([https](https://github.com/chriso/redback) result 200). * [ ] http://github.com/ezmobius/redis-rb with 1 occurrences migrated to: https://github.com/ezmobius/redis-rb ([https](https://github.com/ezmobius/redis-rb) result 200). * [ ] http://github.com/qi4j/qi4j-sdk with 1 occurrences migrated to: https://github.com/qi4j/qi4j-sdk ([https](https://github.com/qi4j/qi4j-sdk) result 200). * [ ] http://hackage.haskell.org/package/hedis with 1 occurrences migrated to: https://hackage.haskell.org/package/hedis ([https](https://hackage.haskell.org/package/hedis) result 200). * [ ] http://iwantmyname.com with 1 occurrences migrated to: https://iwantmyname.com ([https](https://iwantmyname.com) result 200). * [ ] http://leatherbound.me/ with 1 occurrences migrated to: https://leatherbound.me/ ([https](https://leatherbound.me/) result 200). * [ ] http://linux.die.net/man/2/fork with 2 occurrences migrated to: https://linux.die.net/man/2/fork ([https](https://linux.die.net/man/2/fork) result 200). * [ ] http://linux.die.net/man/2/fsync with 1 occurrences migrated to: https://linux.die.net/man/2/fsync ([https](https://linux.die.net/man/2/fsync) result 200). * [ ] http://lwn.net/Articles/374424/ with 1 occurrences migrated to: https://lwn.net/Articles/374424/ ([https](https://lwn.net/Articles/374424/) result 200). * [ ] http://man.cx/accept with 1 occurrences migrated to: https://man.cx/accept ([https](https://man.cx/accept) result 200). * [ ] http://man.cx/accept%282%29 with 1 occurrences migrated to: https://man.cx/accept%282%29 ([https](https://man.cx/accept%282%29) result 200). * [ ] http://man.cx/epoll_create%282%29 with 1 occurrences migrated to: https://man.cx/epoll_create%282%29 ([https](https://man.cx/epoll_create%282%29) result 200). * [ ] http://man.cx/epoll_ctl with 1 occurrences migrated to: https://man.cx/epoll_ctl ([https](https://man.cx/epoll_ctl) result 200). * [ ] http://man.cx/epoll_wait with 1 occurrences migrated to: https://man.cx/epoll_wait ([https](https://man.cx/epoll_wait) result 200). * [ ] http://oknotizie.virgilio.it (301) with 1 occurrences migrated to: https://notizie.virgilio.it ([https](https://oknotizie.virgilio.it) result 200). * [ ] http://ohm.keyvalue.org with 1 occurrences migrated to: https://ohm.keyvalue.org ([https](https://ohm.keyvalue.org) result 200). * [ ] http://redis.io with 1 occurrences migrated to: https://redis.io ([https](https://redis.io) result 200). * [ ] http://redis.io/clients with 2 occurrences migrated to: https://redis.io/clients ([https](https://redis.io/clients) result 200). * [ ] http://redis.io/commands/client-list with 2 occurrences migrated to: https://redis.io/commands/client-list ([https](https://redis.io/commands/client-list) result 200). * [ ] http://redis.io/commands/script-load with 1 occurrences migrated to: https://redis.io/commands/script-load ([https](https://redis.io/commands/script-load) result 200). * [ ] http://redis.io/topics/data-types-intro with 1 occurrences migrated to: https://redis.io/topics/data-types-intro ([https](https://redis.io/topics/data-types-intro) result 200). * [ ] http://redis.io/topics/persistence with 2 occurrences migrated to: https://redis.io/topics/persistence ([https](https://redis.io/topics/persistence) result 200). * [ ] http://seatgeek.com/ with 1 occurrences migrated to: https://seatgeek.com/ ([https](https://seatgeek.com/) result 200). * [ ] http://static.guim.co.uk/static/97665/networkfront/images/guardian_logo.png with 1 occurrences migrated to: https://static.guim.co.uk/static/97665/networkfront/images/guardian_logo.png ([https](https://static.guim.co.uk/static/97665/networkfront/images/guardian_logo.png) result 200). * [ ] http://static.mlstatic.com/org-img/logo_ml/logoAlpha.png with 1 occurrences migrated to: https://static.mlstatic.com/org-img/logo_ml/logoAlpha.png ([https](https://static.mlstatic.com/org-img/logo_ml/logoAlpha.png) result 200). * [ ] http://static.pe.studivz.net/20101222-0/Img/logo.png with 1 occurrences migrated to: https://static.pe.studivz.net/20101222-0/Img/logo.png ([https](https://static.pe.studivz.net/20101222-0/Img/logo.png) result 200). * [ ] http://surfingbird.com with 1 occurrences migrated to: https://surfingbird.com ([https](https://surfingbird.com) result 200). * [ ] http://twitter.com/antirez with 1 occurrences migrated to: https://twitter.com/antirez ([https](https://twitter.com/antirez) result 200). * [ ] http://twitter.com/costinl with 1 occurrences migrated to: https://twitter.com/costinl ([https](https://twitter.com/costinl) result 200). * [ ] http://twitter.com/pnoordhuis with 1 occurrences migrated to: https://twitter.com/pnoordhuis ([https](https://twitter.com/pnoordhuis) result 200). * [ ] http://webd.is/ with 1 occurrences migrated to: https://webd.is/ ([https](https://webd.is/) result 200). * [ ] http://wiki.call-cc.org/eggref/4/redis-client with 1 occurrences migrated to: https://wiki.call-cc.org/eggref/4/redis-client ([https](https://wiki.call-cc.org/eggref/4/redis-client) result 200). * [ ] http://www.ancestry.com/ with 1 occurrences migrated to: https://www.ancestry.com/ ([https](https://www.ancestry.com/) result 200). * [ ] http://www.boxcar.io with 1 occurrences migrated to: https://www.boxcar.io ([https](https://www.boxcar.io) result 200). * [ ] http://www.cliki.net/cl-redis with 1 occurrences migrated to: https://www.cliki.net/cl-redis ([https](https://www.cliki.net/cl-redis) result 200). * [ ] http://www.linuxjournal.com/article/6340 with 1 occurrences migrated to: https://www.linuxjournal.com/article/6340 ([https](https://www.linuxjournal.com/article/6340) result 200). * [ ] http://www.lua.org/pil/19.1.html with 1 occurrences migrated to: https://www.lua.org/pil/19.1.html ([https](https://www.lua.org/pil/19.1.html) result 200). * [ ] http://www.rsyslog.com/doc/build_from_repo.html with 1 occurrences migrated to: https://www.rsyslog.com/doc/build_from_repo.html ([https](https://www.rsyslog.com/doc/build_from_repo.html) result 200). * [ ] http://www.sharpcloud.com with 1 occurrences migrated to: https://www.sharpcloud.com ([https](https://www.sharpcloud.com) result 200). * [ ] http://www.wooga.com/games/ with 1 occurrences migrated to: https://www.wooga.com/games/ ([https](https://www.wooga.com/games/) result 200). * [ ] http://adilbaig.github.com/Tiny-Redis/ with 1 occurrences migrated to: https://adilbaig.github.com/Tiny-Redis/ ([https](https://adilbaig.github.com/Tiny-Redis/) result 301). * [ ] http://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics-using-redis-bitmaps with 2 occurrences migrated to: https://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics-using-redis-bitmaps ([https](https://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics-using-redis-bitmaps) result 301). * [ ] http://carlhoerberg.github.com/meerkat/ with 1 occurrences migrated to: https://carlhoerberg.github.com/meerkat/ ([https](https://carlhoerberg.github.com/meerkat/) result 301). * [ ] http://citrusbyte.com with 1 occurrences migrated to: https://citrusbyte.com ([https](https://citrusbyte.com) result 301). * [ ] http://code.flickr.com/blog/2011/10/11/talk-real-time-updates-on-the-cheap-for-fun-and-profit/ (301) with 1 occurrences migrated to: https://code.flickr.net/blog/2011/10/11/talk-real-time-updates-on-the-cheap-for-fun-and-profit/ ([https](https://code.flickr.com/blog/2011/10/11/talk-real-time-updates-on-the-cheap-for-fun-and-profit/) result 301). * [ ] http://code.google.com/p/booksleeve/ with 1 occurrences migrated to: https://code.google.com/p/booksleeve/ ([https](https://code.google.com/p/booksleeve/) result 301). * [ ] http://code.google.com/p/credis/source/browse with 1 occurrences migrated to: https://code.google.com/p/credis/source/browse ([https](https://code.google.com/p/credis/source/browse) result 301). * [ ] http://code.google.com/p/eredis with 1 occurrences migrated to: https://code.google.com/p/eredis ([https](https://code.google.com/p/eredis) result 301). * [ ] http://code.google.com/p/google-perftools/ with 1 occurrences migrated to: https://code.google.com/p/google-perftools/ ([https](https://code.google.com/p/google-perftools/) result 301). * [ ] http://code.google.com/p/hxneko-redis with 1 occurrences migrated to: https://code.google.com/p/hxneko-redis ([https](https://code.google.com/p/hxneko-redis) result 301). * [ ] http://code.google.com/p/hxneko-redis/source/browse with 1 occurrences migrated to: https://code.google.com/p/hxneko-redis/source/browse ([https](https://code.google.com/p/hxneko-redis/source/browse) result 301). * [ ] http://code.google.com/p/jdbc-redis with 1 occurrences migrated to: https://code.google.com/p/jdbc-redis ([https](https://code.google.com/p/jdbc-redis) result 301). * [ ] http://code.google.com/p/jdbc-redis/source/browse with 1 occurrences migrated to: https://code.google.com/p/jdbc-redis/source/browse ([https](https://code.google.com/p/jdbc-redis/source/browse) result 301). * [ ] http://code.google.com/p/jredis with 1 occurrences migrated to: https://code.google.com/p/jredis ([https](https://code.google.com/p/jredis) result 301). * [ ] http://code.google.com/p/redis with 1 occurrences migrated to: https://code.google.com/p/redis ([https](https://code.google.com/p/redis) result 301). * [ ] http://code.google.com/p/redis/downloads/list with 2 occurrences migrated to: https://code.google.com/p/redis/downloads/list ([https](https://code.google.com/p/redis/downloads/list) result 301). * [ ] http://code.google.com/p/redis/issues/detail?id=270 with 1 occurrences migrated to: https://code.google.com/p/redis/issues/detail?id=270 ([https](https://code.google.com/p/redis/issues/detail?id=270) result 301). * [ ] http://code.google.com/p/redis/issues/detail?id=34 with 1 occurrences migrated to: https://code.google.com/p/redis/issues/detail?id=34 ([https](https://code.google.com/p/redis/issues/detail?id=34) result 301). * [ ] http://code.google.com/p/redis/wiki/README with 1 occurrences migrated to: https://code.google.com/p/redis/wiki/README ([https](https://code.google.com/p/redis/wiki/README) result 301). * [ ] http://code.google.com/p/tcgl/ with 1 occurrences migrated to: https://code.google.com/p/tcgl/ ([https](https://code.google.com/p/tcgl/) result 301). * [ ] http://engineyard.com with 1 occurrences migrated to: https://engineyard.com ([https](https://engineyard.com) result 301). * [ ] http://github.com/SpringSource/spring-data-redis with 1 occurrences migrated to: https://github.com/SpringSource/spring-data-redis ([https](https://github.com/SpringSource/spring-data-redis) result 301). * [ ] http://groups.google.com/group/redis-db with 1 occurrences migrated to: https://groups.google.com/group/redis-db ([https](https://groups.google.com/group/redis-db) result 301). * [ ] http://groups.google.com/group/redis-db/browse_thread/thread/b52814e9ef15b8d0/ with 1 occurrences migrated to: https://groups.google.com/group/redis-db/browse_thread/thread/b52814e9ef15b8d0/ ([https](https://groups.google.com/group/redis-db/browse_thread/thread/b52814e9ef15b8d0/) result 301). * [ ] http://j.mp/eo6z6I with 1 occurrences migrated to: https://j.mp/eo6z6I ([https](https://j.mp/eo6z6I) result 301). * [ ] http://linode.com with 1 occurrences migrated to: https://linode.com ([https](https://linode.com) result 301). * [ ] http://memtest86.com with 1 occurrences migrated to: https://memtest86.com ([https](https://memtest86.com) result 301). * [ ] http://meta.stackoverflow.com/questions/69164/does-stackoverflow-use-caching-and-if-so-how/69172 with 1 occurrences migrated to: https://meta.stackoverflow.com/questions/69164/does-stackoverflow-use-caching-and-if-so-how/69172 ([https](https://meta.stackoverflow.com/questions/69164/does-stackoverflow-use-caching-and-if-so-how/69172) result 301). * [ ] http://mperham.github.com/sidekiq/ with 1 occurrences migrated to: https://mperham.github.com/sidekiq/ ([https](https://mperham.github.com/sidekiq/) result 301). * [ ] http://nuget.org/List/Packages/Sider with 1 occurrences migrated to: https://nuget.org/List/Packages/Sider ([https](https://nuget.org/List/Packages/Sider) result 301). * [ ] http://pypi.python.org/pypi/txredis/0.1.1 with 1 occurrences migrated to: https://pypi.python.org/pypi/txredis/0.1.1 ([https](https://pypi.python.org/pypi/txredis/0.1.1) result 301). * [ ] http://redis.codeplex.com/ with 1 occurrences migrated to: https://redis.codeplex.com/ ([https](https://redis.codeplex.com/) result 301). * [ ] http://search.cpan.org/dist/AnyEvent-Hiredis with 1 occurrences migrated to: https://search.cpan.org/dist/AnyEvent-Hiredis ([https](https://search.cpan.org/dist/AnyEvent-Hiredis) result 301). * [ ] http://search.cpan.org/dist/AnyEvent-Redis with 1 occurrences migrated to: https://search.cpan.org/dist/AnyEvent-Redis ([https](https://search.cpan.org/dist/AnyEvent-Redis) result 301). * [ ] http://search.cpan.org/dist/AnyEvent-Redis-RipeRedis with 1 occurrences migrated to: https://search.cpan.org/dist/AnyEvent-Redis-RipeRedis ([https](https://search.cpan.org/dist/AnyEvent-Redis-RipeRedis) result 301). * [ ] http://search.cpan.org/dist/Danga-Socket-Redis with 1 occurrences migrated to: https://search.cpan.org/dist/Danga-Socket-Redis ([https](https://search.cpan.org/dist/Danga-Socket-Redis) result 301). * [ ] http://search.cpan.org/dist/MojoX-Redis with 1 occurrences migrated to: https://search.cpan.org/dist/MojoX-Redis ([https](https://search.cpan.org/dist/MojoX-Redis) result 301). * [ ] http://search.cpan.org/dist/Redis with 1 occurrences migrated to: https://search.cpan.org/dist/Redis ([https](https://search.cpan.org/dist/Redis) result 301). * [ ] http://search.cpan.org/dist/Redis-hiredis/ with 1 occurrences migrated to: https://search.cpan.org/dist/Redis-hiredis/ ([https](https://search.cpan.org/dist/Redis-hiredis/) result 301). * [ ] http://search.cpan.org/dist/RedisDB with 1 occurrences migrated to: https://search.cpan.org/dist/RedisDB ([https](https://search.cpan.org/dist/RedisDB) result 301). * [ ] http://simonwillison.net/2009/Dec/20/crowdsourcing with 1 occurrences migrated to: https://simonwillison.net/2009/Dec/20/crowdsourcing ([https](https://simonwillison.net/2009/Dec/20/crowdsourcing) result 301). * [ ] http://thewikigame.com with 1 occurrences migrated to: https://thewikigame.com ([https](https://thewikigame.com) result 301). * [ ] http://top10.com with 1 occurrences migrated to: https://top10.com ([https](https://top10.com) result 301). * [ ] http://vmware.com with 2 occurrences migrated to: https://vmware.com ([https](https://vmware.com) result 301). * [ ] http://t.sina.com.cn/ (301) with 1 occurrences migrated to: https://weibo.com/ ([https](https://t.sina.com.cn/) result 301). * [ ] http://wish.hu with 1 occurrences migrated to: https://wish.hu ([https](https://wish.hu) result 301). * [ ] http://www.clemesha.org/blog/really-using-redis-to-build-fast-real-time-web-apps/ with 1 occurrences migrated to: https://www.clemesha.org/blog/really-using-redis-to-build-fast-real-time-web-apps/ ([https](https://www.clemesha.org/blog/really-using-redis-to-build-fast-real-time-web-apps/) result 301). * [ ] http://www.hitmeister.de/ with 1 occurrences migrated to: https://www.hitmeister.de/ ([https](https://www.hitmeister.de/) result 301). * [ ] http://slicehost.com (301) with 1 occurrences migrated to: https://www.rackspace.com/cloud/vps/ ([https](https://slicehost.com) result 301). * [ ] http://www.springsource.org/spring-data/redis with 1 occurrences migrated to: https://www.springsource.org/spring-data/redis ([https](https://www.springsource.org/spring-data/redis) result 301). * [ ] http://www.tweetdeck.com/assets/logo/UpdatedLogo-500x500.png with 1 occurrences migrated to: https://www.tweetdeck.com/assets/logo/UpdatedLogo-500x500.png ([https](https://www.tweetdeck.com/assets/logo/UpdatedLogo-500x500.png) result 301). * [ ] http://www.zoombu.co.uk with 1 occurrences migrated to: https://www.zoombu.co.uk ([https](https://www.zoombu.co.uk) result 301). * [ ] http://blog.superfeedr.com/redis/mysql/memcache/datastore/performance/redis-at-superfeedr with 1 occurrences migrated to: https://blog.superfeedr.com/redis/mysql/memcache/datastore/performance/redis-at-superfeedr ([https](https://blog.superfeedr.com/redis/mysql/memcache/datastore/performance/redis-at-superfeedr) result 302). * [ ] http://nk.pl/ with 1 occurrences migrated to: https://nk.pl/ ([https](https://nk.pl/) result 302). * [ ] http://us.blizzard.com/_images/company/about/awards/logo-dev.gif with 1 occurrences migrated to: https://us.blizzard.com/_images/company/about/awards/logo-dev.gif ([https](https://us.blizzard.com/_images/company/about/awards/logo-dev.gif) result 302). * [ ] http://www.fotolog.com/ with 1 occurrences migrated to: https://www.fotolog.com/ ([https](https://www.fotolog.com/) result 302). * [ ] http://www.moodstocks.com/2010/11/26/the-tech-behind-moodstocks-notes with 1 occurrences migrated to: https://www.moodstocks.com/2010/11/26/the-tech-behind-moodstocks-notes ([https](https://www.moodstocks.com/2010/11/26/the-tech-behind-moodstocks-notes) result 302).
[5.0.7] add tarball tests
Let's modify redis.c to demonstrate this problem:
....
int main(int argc, char **argv) {
for (int i=1020; i<1030; i++)
aeWait(i, AE_READABLE, 10);
....
}
Run the program with strace:
strace -T ./redis-server
....
select(1021, [1020], [], [], {0, 10000}) = 0 (Timeout) < 0.010108>
select(1022, [1021], [], [], {0, 10000}) = 0 (Timeout) < 0.010105>
select(1023, [1022], [], [], {0, 10000}) = 0 (Timeout) < 0.010204>
select(1024, [1023], [], [], {0, 10000}) = 0 (Timeout) < 0.010111>
select(1025, [1024], [], [], {1, 10000}) = 0 (Timeout) < 1.011132>
select(1026, [1025], [], [], {2, 10000}) = 0 (Timeout) < 2.012141>
select(1027, [1026], [], [], {4, 10000}) = 0 (Timeout) < 4.012903>
select(1028, [1027], [], [], {8, 10000}) = 0 (Timeout) < 8.014138>
select(1029, [1028], [], [], {16, 10000}) = 0 (Timeout) < 16.011984>
select(1030, [1029], [], [], {32, 10000}) = 0 (Timeout) < 32.014721>
...
See, the timeval parameter passed to select gets changed after fd exceeds 1024.
in aeWait(), we have:
...
365 tv.tv_sec = milliseconds/1000;
366 tv.tv_usec = (milliseconds%1000)*1000;
367 FD_ZERO(&rfds);
368 FD_ZERO(&wfds);
369 FD_ZERO(&efds);
370
371 if (mask & AE_READABLE) FD_SET(fd,&rfds);
372 if (mask & AE_WRITABLE) FD_SET(fd,&wfds);
373 if ((retval = select(fd+1, &rfds, &wfds, &efds, &tv)) > 0) {
...
Debugging using gdb shows that the FD_SET macro modified tv accidentally in line 371 and 372.
If we move line 365 and 366 after line 372, then it works as expected:
strace -T ./redis-server
...
select(1021, [1020], [], [], {0, 10000}) = 0 (Timeout) < 0.010135>
select(1022, [1021], [], [], {0, 10000}) = 0 (Timeout) < 0.010162>
select(1023, [1022], [], [], {0, 10000}) = 0 (Timeout) < 0.010146>
select(1024, [1023], [], [], {0, 10000}) = 0 (Timeout) < 0.010123>
select(1025, [], [], [], {0, 10000}) = 0 (Timeout) < 0.010143>
select(1026, [], [], [], {0, 10000}) = 0 (Timeout) < 0.010137>
select(1027, [], [], [], {0, 10000}) = 0 (Timeout) < 0.010388>
select(1028, [], [], [], {0, 10000}) = 0 (Timeout) < 0.010151>
select(1029, [], [], [], {0, 10000}) = 0 (Timeout) < 0.010206>
select(1030, [], [], [], {0, 10000}) = 0 (Timeout) < 0.010160>
...
However, this is not the right solution to this problem, and I think using
poll(2) will be a better choice.
The text was updated successfully, but these errors were encountered: