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

THRIFT-3000 .NET implementation has trouble with mixed IP modes #450

Closed
wants to merge 1 commit into from

Conversation

Jens-G
Copy link
Member

@Jens-G Jens-G commented Apr 17, 2015

Client: C#
Patch: sharpdevel icode666@github & Jens Geyer

TcpListener and TcpClient are created based on the capabilities of the used runtime framework. For windows the changes automatically handle IPv4 and IPv6 sockets. In mono it behaves as before.

When using TcpListener and TcpClient it depends on the network configuration if IPv4 or IPv6 is used. By upgrading the framework to .NET 4.5 the DualMode can be set on the sockets of the listener and the client. The sockets then try to establish IPv6 sockets before they fallback to IPv4

Client: C#
Patch: sharpdevel <icode666@github> & Jens Geyer

TcpListener and TcpClient are created based on the capabilities of the used runtime framework. For windows the changes automatically handle IPv4 and IPv6 sockets. In mono it behaves as before.

When using TcpListener and TcpClient it depends on the network configuration if IPv4 or IPv6 is used. By upgrading the framework to .NET 4.5 the DualMode can be set on the sockets of the listener and the client. The sockets then try to establish IPv6 sockets before they fallback to IPv4
@Jens-G Jens-G closed this Apr 17, 2015
@Jens-G Jens-G deleted the THRIFT-3000-csharp-ipv6 branch April 17, 2015 23:35
@jeking3
Copy link
Contributor

jeking3 commented Apr 23, 2015

Did this complete a CI build? Someone suggested in analysis of my pull request to THRIFT-2850 that this changeset is the root cause.

@Jens-G
Copy link
Member Author

Jens-G commented Apr 23, 2015

Sure it did: https://builds.apache.org/job/Thrift/

Travis is only an indicator with unfortunalety some limitations. That's not to say that Travis is not a good tool, but it is not the sacred last word either. Anyway, I'm going to revert that one. Seems we need some more work here.

@nsuke
Copy link
Member

nsuke commented Apr 23, 2015

@Jens-G, can you take a look at #459 before reverting ?

As to the Travis-CI failure, I'm aware that "true" CI is the Jenkins but it would be nice if Travis failures get more attention, because it is easily accessible to all contributors, not only to maintainers.

To name a few key differences:

  • I can run builds and tests on my own Travis-CI account and verify PRs before submitting, not for Jenkins
  • I can suggest working Travis-CI test changes though PRs but don't know any way to do it for Apache Jenkins servers

IMO, @jeking3's way of being very serious about Travis failure is good way to reduce not only occasional regressions but also maintainers' work.

What is good about Jenkins setups ?

@Jens-G
Copy link
Member Author

Jens-G commented Apr 23, 2015

IMO, @jeking3's way of being very serious about Travis failure is good way to reduce not only occasional regressions but also maintainers' work.

Absolutely. I'm 100% behind Travis.

What is good about Jenkins setups ?

That's where the real stuff happens ;-)

@nsuke
Copy link
Member

nsuke commented Apr 24, 2015

How about having unified base for testing ?
Can we have Jenkins build step scripts inside the repository and invoke them from both Jenkins and Travis/Appveyer ?

@Jens-G
Copy link
Member Author

Jens-G commented Apr 24, 2015

They both call the usual suspects: bootstrapsh && configure && make &&... or cmake. The environment makes the difference.

@nsuke
Copy link
Member

nsuke commented Apr 25, 2015

No, Jenkins not calling cross tests made the difference.

In fact, the log shows that Jenkins doesn't even build following languages at all (Building : no):

  • C (GLib)
  • Ruby
  • Haxe
  • Haskell
  • Erlang
  • Go
  • D
  • NodeJS

I couldn't find any evidence of make check being run either.

I have to say it does not do the job well.

The real problem is that Jenkins on Apache servers cannot evolve as fast as the code base because of its closed nature.

@jfarrell
Copy link
Contributor

jfarrell commented Jul 7, 2015

we need to transition our jenkins build over to using the docker containers so we have more control over them and then can run whatever we like inside that. on my list for pre 1.0

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