Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Packets are not broadcasted after some time. #49

Closed
etam opened this Issue · 8 comments

4 participants

@etam

Host system: Ubuntu 12.04
Nodejs: latest (0.10.13) from https://launchpad.net/~richarvey/+archive/nodejs
Ethercalc: latest (0.20130724.1) from npm

On my system Ethercalc at start runs fine, but after about 5 minutes (not exact measure) weird things start to happen:

  • Connected clients are not updated with changes
  • New clients see empty spreadsheet
  • Server in console displays that it receives packets from clients, but is not broadcasting them anymore. Normally there's message "broadcasting packet" followed by "websocket writing some_data...", but later there's only "broadcasting packet" and nothing happens (here's the log: http://susepaste.org/19467747. to line 381 everything is fine, then there's some inactivity and at 432 there are events that aren't broadcasted).

Reproducible: always

@audreyt
Owner

Hmm, weird indeed. Does EtherCalc 0.20130727.0 and Node.js 0.10.15 help?

@jittichat

I faced the same problem though I've updated both ethercalc and nodejs.
Host system: Ubuntu 12.04
Nodejs: latest (0.10.15)
Ethercalc: latest (0.20130727.0) from npm

@etam

Nodejs: 0.10.15
Ethercalc: 0.20130727.0 from npm
Problem still exists.

@etam

I don't know if it's a solution or rather workaround, but disabling 5 min timeout for idle clients in redis fixed the problem.

@flgcloud

It's the same for me, it's impossible to use Ethercalc in production, see #63, with
ubuntu 12.04 LTS
node -v > v0.10.19
npm ls --global >
/usr/lib
├─┬ ethercalc@0.20130925.0
│ ├── cors@1.0.1
│ ├─┬ LiveScript@1.2.0
│ │ └── prelude-ls@1.0.3
│ ├─┬ optimist@0.6.0
│ │ ├── minimist@0.0.5
│ │ └── wordwrap@0.0.2
│ ├── redis@0.8.2
│ ├── uuid-pure@1.0.10
│ ├── webworker-threads@0.4.7
│ └─┬ zappajs@0.4.22
│ ├─┬ coffee-css@0.0.5
│ │ ├── coffee-script@1.6.3
│ │ └── underscore@1.5.2
│ ├─┬ coffeecup@0.3.20
│ │ ├── coffee-script@1.6.3
│ │ ├── optparse@1.0.3
│ │ ├─┬ stylus@0.27.2
│ │ │ ├── cssom@0.2.5
│ │ │ ├── debug@0.7.2
│ │ │ └── mkdirp@0.3.5
│ │ └── uglify-js@1.2.6
│ ├─┬ express@3.2.6
│ │ ├── buffer-crc32@0.2.1
│ │ ├── commander@0.6.1
│ │ ├─┬ connect@2.7.11
│ │ │ ├── bytes@0.2.0
│ │ │ ├── cookie@0.0.5
│ │ │ ├── formidable@1.0.14
│ │ │ ├── pause@0.0.1
│ │ │ ├── qs@0.6.5
│ │ │ └─┬ send@0.1.1
│ │ │ └── mime@1.2.11
│ │ ├── cookie@0.1.0
│ │ ├── cookie-signature@1.0.1
│ │ ├── debug@0.7.2
│ │ ├── fresh@0.1.0
│ │ ├── mkdirp@0.3.4
│ │ ├── range-parser@0.0.4
│ │ └─┬ send@0.1.0
│ │ └── mime@1.2.6
│ ├── methods@0.0.1
│ ├── node-uuid@1.4.0
│ ├─┬ socket.io@0.9.16
│ │ ├── base64id@0.1.0
│ │ ├── policyfile@0.0.4
│ │ ├── redis@0.7.3
│ │ └─┬ socket.io-client@0.9.16
│ │ ├─┬ active-x-obfuscator@0.0.1
│ │ │ └── zeparser@0.0.5
│ │ ├── uglify-js@1.2.5
│ │ ├─┬ ws@0.4.31
│ │ │ ├── commander@0.6.1
│ │ │ ├── nan@0.3.2
│ │ │ ├── options@0.0.5
│ │ │ └── tinycolor@0.0.1
│ │ └── xmlhttprequest@1.4.2
│ └─┬ uglify-js@2.3.6
│ ├── async@0.2.9
│ ├─┬ optimist@0.3.7
│ │ └── wordwrap@0.0.2
│ └─┬ source-map@0.1.29
│ └── amdefine@0.0.8
├─┬ npm@1.3.11
│ ├── abbrev@1.0.4
│ ├── ansi@0.1.2
│ ├── archy@0.0.2
│ ├── block-stream@0.0.7
│ ├── child-process-close@0.1.1
│ ├── chmodr@0.1.0
│ ├── chownr@0.0.1
│ ├── cmd-shim@1.0.1
│ ├── editor@0.0.4
│ ├── fstream@0.1.24
│ ├─┬ fstream-npm@0.1.5
│ │ └── fstream-ignore@0.0.7
│ ├── github-url-from-git@1.1.1
│ ├── glob@3.2.6
│ ├── graceful-fs@2.0.1
│ ├── inherits@2.0.1
│ ├── ini@1.1.0
│ ├─┬ init-package-json@0.0.11
│ │ └── promzard@0.2.0
│ ├── lockfile@0.4.2
│ ├── lru-cache@2.3.1
│ ├─┬ minimatch@0.2.12
│ │ └── sigmund@1.0.0
│ ├── mkdirp@0.3.5
│ ├── node-gyp@0.10.10
│ ├── nopt@2.1.2
│ ├─┬ npm-registry-client@0.2.28
│ │ └── couch-login@0.1.18
│ ├── npm-user-validate@0.0.3
│ ├─┬ npmconf@0.1.3
│ │ └─┬ config-chain@1.1.7
│ │ └── proto-list@1.2.2
│ ├── npmlog@0.0.4
│ ├── once@1.1.1
│ ├── opener@1.3.0
│ ├── osenv@0.0.3
│ ├─┬ read@1.0.5
│ │ └── mute-stream@0.0.4
│ ├── read-installed@0.2.4
│ ├─┬ read-package-json@1.1.3
│ │ └── normalize-package-data@0.2.2
│ ├─┬ request@2.27.0
│ │ ├── aws-sign@0.3.0
│ │ ├── cookie-jar@0.3.0
│ │ ├── forever-agent@0.5.0
│ │ ├─┬ form-data@0.1.1
│ │ │ ├── async@0.2.9
│ │ │ └─┬ combined-stream@0.0.4
│ │ │ └── delayed-stream@0.0.5
│ │ ├─┬ hawk@1.0.0
│ │ │ ├── boom@0.4.2
│ │ │ ├── cryptiles@0.2.2
│ │ │ ├── hoek@0.9.1
│ │ │ └── sntp@0.2.4
│ │ ├─┬ http-signature@0.10.0
│ │ │ ├── asn1@0.1.11
│ │ │ ├── assert-plus@0.1.2
│ │ │ └── ctype@0.5.2
│ │ ├── json-stringify-safe@5.0.0
│ │ ├── mime@1.2.11
│ │ ├── node-uuid@1.4.1
│ │ ├── oauth-sign@0.3.0
│ │ ├── qs@0.6.5
│ │ └── tunnel-agent@0.3.0
│ ├── retry@0.6.0
│ ├── rimraf@2.2.2
│ ├── semver@2.1.0
│ ├─┬ sha@1.2.3
│ │ └── readable-stream@1.0.17
│ ├── slide@1.1.5
│ ├── tar@0.1.18
│ ├── uid-number@0.0.3
│ └── which@1.0.5
└── webworker-threads@0.4.7

@audreyt
Owner

@etam Thanks for the report! This is the first time I've heard of timeout in Redis — is the stock redis.conf set to timeout 300? IIRC https://raw.github.com/antirez/redis/2.4/redis.conf and https://raw.github.com/antirez/redis/2.6/redis.conf both ships with timeout 0.

Clearly we need better Redis timeout handling, hopefully in redis/hiredis level. Pointers welcome!

@etam

Ubuntu package in 12.04 http://packages.ubuntu.com/source/precise/redis has default timeout 300. All later versions have 0.

@flgcloud

With "timeout 0" in /etc/redis/redis.conf Ethercalc works very well for me.
Since it works very fine, it's great and the solution to my problem #63

Thank you very much

@audreyt audreyt referenced this issue from a commit
@audreyt * Note #49 in README. 25da98c
@audreyt audreyt closed this
@audreyt audreyt referenced this issue from a commit
@audreyt * Note #49 in README. 3281218
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.