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

Mono experience #694

Closed
rogeralsing opened this issue Feb 28, 2015 · 13 comments
Closed

Mono experience #694

rogeralsing opened this issue Feb 28, 2015 · 13 comments

Comments

@rogeralsing
Copy link
Contributor

We do have a problem in the fact that the core team does have too little Mono experience.
I think we should try to improve on this topic.

So first question to our Mono friends;

What is the simplest way to code and debug stuff in Mono land?
I have Sharpdevelop installed in Ubuntu, but that can not open vs2012 solutions.
How do you deal with this?

@rogeralsing
Copy link
Contributor Author

How do I build Akka.NET on mono?

bash build.sh Build
Throws and says "Project in imports is empty" on the fsproj files.

@ZigMeowNyan
Copy link
Contributor

While SharpDevelop is nice, I'm pretty sure the "official" IDE for mono is MonoDevelop. It's cross-platform (Win/Mac/Linux), although the Windows and Mac versions are distributed as "Xamarin Studio", which is essentially a branded MonoDevelop with some Xamarin plugins irrelevant to Akka. I guess you could also build vanilla MonoDevelop from source, but it makes more sense to just use the same packaging as everyone else.

It might be worthwhile to attempt to build Akka in MonoDevelop/XamarinStudio on windows first, and then look into making sure you've got all the package dependencies in your Linux distro afterwards. On that note, I downloaded the dev branch of Akka.net, opened it up in Xamarin Studio 5.1 (current version is 5.7) on Windows and hit Rebuild in the Debug configuration. Everything seemed to work except for the following three projects:

  • Akka.TestKit
  • Akka.Remote.TestKit
  • Akka.Cluster.Tests

They all failed with the same error - "This project type is not supported by Xamarin Studio." Here's a screenshot for you:

image

Seems like the built-in Unit Test project type isn't handled by Xamarin/MonoDevelop. But at least the core system builds. Seems like you could probably open this on Linux with the MonoDevelop IDE with little effort and attempt a build.

Also of note is the recent OSS-ing of MSBuild, which is might make an impact on the cross-platform toolchains. But it seems like Mono's XBuild currently handles most of what's needed.

@rogeralsing
Copy link
Contributor Author

remoting

@Aaronontheweb any idea whats causing that?

Do I need to make the PI open up for inc connections?
I recall seeing similar problems on a real nix machine.
[edit]
Getting the same error if trying to connect from the PC to the PI.

Anyone know how to open up for inc connections?

@Aaronontheweb
Copy link
Member

I saw this on my dedicated Ubuntu machine too. Just realized that I introduced a bug in the RelativeActorPath class when I was trying to work around the Mono URI issues - so it could be that.

The other cause of this issue was a simple port binding problem - saw some issues where binding to port 0 for outbound connections intermittently failed. I'm not familiar enough with POSIX sockets to know why just yet.

Your inbound server is probably working fine - it's been the outbound one that's been acting suspect.

@Aaronontheweb
Copy link
Member

This should work fine now - just ran all of the Akka.Cluster and Akka.Remote samples locally on Ubuntu 14.04 with the latest version of Mono.

@rogeralsing
Copy link
Contributor Author

The project still references the old version of Helios.
And even with the updated version, it does not succeed to listen to the server Port under Rasbian.

[Edit]
My bad, both chat client and server is listening.

netstat -pnlt | grep '/mono' lists both of them.
So far so good.

[Edit again]
Turns out that if I initialize the connection from the PI to the laptop, it does work fine.
But if I init from laptop to PI, I get connection refused.

Id guess thats some sort of config thing in linux/rasbian, and that akka.net now runs fine on mono 👍
Kudos to @Aaronontheweb !!

@Aaronontheweb
Copy link
Member

@rogeralsing thanks :)

Sounds like RaspberryPI doesn't allow inbound connections by default - good to know!

@rogeralsing
Copy link
Contributor Author

The server now runs fine on the RPI, turned out that it was the RPI Firewall iptables causing it, stopping this service solved the problem.

@rogeralsing
Copy link
Contributor Author

As far as I can tell, we play nicely with Mono.
If the Raspberry PI issues are real issues, they seems to be related to the Mono threadpool, not Akka.NET itself.

Should we consider this one done?

@stefansedich
Copy link
Contributor

Mmm have we tried with mono 4 on the pi? I was hoping to do more over my
break looking into mono but my internet access was horrible at best.

I have ran with remoting in production under mono so far without a hitch so
I am happy with that part.

Cheers
On 6 Apr 2015 9:56 am, "Roger Alsing" notifications@github.com wrote:

As far as I can tell, we play nicely with Mono.
If the Raspberry PI issues are real issues, they seems to be related to
the Mono threadpool, not Akka.NET itself.

Should we consider this one done?


Reply to this email directly or view it on GitHub
#694 (comment).

@rogeralsing
Copy link
Contributor Author

Any pointers to how to get mono 4 on the rpi?

@stefansedich
Copy link
Contributor

No sorry have not done it myself yet.
On 6 Apr 2015 3:22 pm, "Roger Alsing" notifications@github.com wrote:

Any pointers to how to get mono 4 on the rpi?


Reply to this email directly or view it on GitHub
#694 (comment).

@ZigMeowNyan
Copy link
Contributor

The current mono release is still 3.12.1 from March 7th. They've drafted the release notes for 4.0, but it hasn't actually been released yet despite the link being tossed around social media.

If you want to try version 4 (which has apparently merged in a lot of code from .NET core), you'll probably have to build it from source, either by compiling locally on the Pi or through a cross-compiler. Not sure which branch is relevant, though the above draft notes mention commit 519ddb9895af5639de5ba0361af54a8d585c4070. That commit is showing on the master branch, so maybe building from git would be enough.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants