Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

cluster with node v0.5.10 #168

Open
zachaller opened this Issue · 40 comments
@zachaller

it seems that cluster dose not work with v0.5.10 of node just thought i would let you guys know if you didn't already. There error that is returned is

TypeError: object is not a function
at Object.CALL_NON_FUNCTION (native)
at Object. (/home/zachaller/ezNode/s.js:13:9)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array. (module.js:470:10)
at EventEmitter._tickCallback (node.js:190:26)

this is ran on the samples from git page

@alexkwolfe

Apparently, "cluster" is a native module now.

nodejs/node-v0.x-archive@87339a2

@tj
tj commented

yup. ryan is willing to rename it, but my hope is that the core one would be friendly enough to ditch learnboost/cluster, multinode and all the others

@zachaller

yea i suppose i saw that there was a native cluster also i was thinking that LearnBoost / cluster would just use the built in one eventually but i still like LearnBoost / cluster because of all the other things it provides like auto file reloading and emailing if it crashed etc

@tj
tj commented

for sure. hopefully we'll get the core one to a point where it can be relatively elegant without being too opinionated, my only concern there is that "cute" APIs like cluster provides are not really core material

@msiebuhr

How about updating package.json to avoid conflicts until something is figured out?

"engines": {
    "node": "< v0.5.10"
}

edit: Let me know if you want a pull-request, and I'll cook one up...

@kainosnoema

@visionmedia - I, for one, find the extra APIs in LearnBoost/cluster incredibly useful, as the core Cluster module is currently fairly bare. Maybe transition LearnBoost/cluster into a lighter set of additions to the core module? A new name would be in order as well, I suppose...

@tj
tj commented

yup, I'm on it, just need some spare time to finish it up

@zachaller

Awesome that is exactly what I was hoping would happen and again thanks for all the hard work looking forward to using it eventually.

@evocateur

Any ETA on that spare time?

@tj
tj commented

not sure, we have part of the new project ready to go but we have some larger more ambitious ideas of it as well, we just were not sure if we wanted to wait for those or release what is there so far

@evocateur

Thanks for the update, trying to decide if I can wait long enough (i.e., put up with dev complaints) for the new release or just hack my local copy to change the namespace...

@TheDeveloper

@visionmedia looking forward to it. I tried the native cluster module but found myself emulating this module's functionality myself. Therefore, I think it's probably a more productive idea to wait until the updated version of this project is released. Let me know if I can help with anything!

@kof

@visionmedia while you are working on the new version, why don't you rename it first to let people work with it on 0.6.0?

@evocateur

Sadly, I tried the renaming locally, and it's actually deeper than just the name. There are a couple bindings that were removed in 0.6.0 that are used behind the scenes in cluster. Not having the time to grok the code in question, I just resorted to building 0.4.12 for my coworkers to use for the time-being.

@rskuja

looking forward for some working version from anyone.

@qrpike

Any news on this? desperate to get my old Cluster module back up and running.

@sreuter

same over here. :-/

@qrpike

After some learning and practice I was able to make the same thing as Cluster with 0.6.5. Although it does not have REPL. Auto reloading and auto cluster restarts it does have. Just try coding something yourself, it might be better for your application until they release the next version.

@Rcomian

@qrpike, nah. It's easy enough to make something cluster like, the difference is the knowledge and effort that's gone into it. Modules, REPL, statistics through the commandline and the web. That's what this project is, not just restarting some services.

@qrpike

I agree, cluster is amazing. But for now, we can code something simple to get by.

@rgrove

:(

@alexkwolfe

My sentiments exactly.

@evocateur

I really appreciate the work @visionmedia put into this library. Clearly it is influential, powerful, and addresses functionality deemed important enough to "graduate" into core.

It is also pretty clear that it is a dead library, and won't ever see node 0.6.x and beyond in it's current state. C'est la vie. If nothing else, I'll probably learn a lot in the process of hacking a fork into workable condition.

@kevwil

This is so discouraging. I'll probably stick with 0.4.12 and keep waiting for the core cluster module gets mature enough to be a viable replacement, or just get tired of waiting and move on to something else.

@Skrylar

I'm a bit saddened by this too; I was looking forward to testing it out with a project I have in development.

@akidee

I am still using node v0.4.12 because of this, too. I mean, this is open-source, and you cannot expect that this module is up-to-date. But somebody should offer a bounty to TJ or to somebody who will fix this!

@kainosnoema

Actually, I'm with @visionmedia on this. He hasn't explained the situation very well, but after spending a bit of time working with the core cluster module in Node v0.5+, it's clear why he's waiting or maybe even abandoning this module for now.

What happened is a bit complicated, but basically v0.5.x removed core functionality that LearnBoost/cluster depended on, and the core cluster module that was added at that point was so rough, there was no point in trying to rewrite on top of it. Even in v0.6-7.x, the cluster module is still in flux and is missing a few key pieces, making it very difficult to keep the same functionality in a backwards-compatible way. I'm assuming TJ just decided it wasn't worth the effort to deal with all the non-sense that these changes introduced, and I don't really blame him.

So bottom line, it wasn't TJ's fault, and there's a reason why nobody else has fixed this yet either—the core cluster module probably won't be stable enough to build on until Node v0.8.x. Unfortunately, the Node team just didn't really think things through before adding an immature module to what was supposed to be a "stable" version.

@akidee

Sure, basically I am OK with using node's cluster and delegating file watching to another module. It's just not fun to re-delegate a piece of functionality anew every n months. (But that's in the nature of a new framework.) That's it. It would be helpful to have a list of existing modules that can replace the current functionality. I liked the file watcher since it worked in opposite to nodemon. And I liked cluster for gracefully restarting the process without any failure.

@tj
tj commented

I actually had a somewhat better replacement in the works (only like a day of work) but had postponed it since we were still using 0.4.x on our application. You can get away with a similar API using node's core cluster, but the project just can't be called cluster (for obvious reasons :))

@xentac

What is the current plan for 0.6 support? While the nodejs cluster module gives you the basics of forking, I really like the logging/pids/graceful reboot abilities of this cluster module. Should a new project be started with a similar api built around the nodejs cluster fundamentals?

Perhaps something like this? https://github.com/audreyt/node-cluster-server

@aklt

+1 for 0.6 support!

@megshark

+1 for 0.6 support also.... love the monitoring console, reboot & logging also.

@maritz

+2 (i asked my sister, she agrees)

@tj
tj commented

@maritz ahahaha! :p

@dmilith

+3 (I have two sisters)

@hustcer

I'm waiting for a 0.6+ support toooooooo

@akidee

Tell this to your sisters and brothers: https://github.com/ql-io/cluster2

@kof
kof commented

You are pretty late, I was waiting a long time and yesterdays switched to other modules :)

@ArkeologeN

+1. Either the core version should be stable or this module must be taken to the next step.

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.