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

installing Dataverse under Payara 5 #4172

Closed
donsizemore opened this issue Sep 29, 2017 · 35 comments
Closed

installing Dataverse under Payara 5 #4172

donsizemore opened this issue Sep 29, 2017 · 35 comments
Assignees
Labels
Feature: Installer Type: Suggestion an idea User Role: Sysadmin Installs, upgrades, and configures the system, connects via ssh

Comments

@donsizemore
Copy link
Contributor

Umbrella issue to track progress in deploying Dataverse under Payara 5, which is in Alpha as of this writing. The installation currently breaks down in deploying the warfile when creating/starting the EJB timers. I can post/send logs, but Payara 5 is still in Alpha.

@pdurbin pdurbin added Feature: Installer Help Wanted: Code Mentor: pdurbin Type: Suggestion an idea User Role: Sysadmin Installs, upgrades, and configures the system, connects via ssh labels Oct 8, 2017
@pdurbin
Copy link
Member

pdurbin commented Oct 8, 2017

@donsizemore thanks for opening this issue. I'd be curious to hear more thoughts from you and others on Payara vs. Glassfish. To me, the big difference is that people installing Dataverse can pay for commercial support from Payara if they wish. Also, Payara seems to release security fixes more often than Glassfish, but I haven't studied this closely.

I wanted to mention that I spoke with @smillidge at JavaOne this past week and he said that because Payara 5 will be a major release (going from 4 to 5) they plan to take this opportunity to incorporate additional features into the product. That is to say, just because Glassfish 5 was released a couple weeks ago doesn't mean that we should expect Payara 5 immediately. (For @smillidge 's information, @donsizemore helps with the care and feeding of https://dataverse.unc.edu and https://dataverse.org contains a map where you can see all 26 installations of Dataverse.)

@smillidge
Copy link
Contributor

@donsizemore any logs from failures are useful to the Payara team. The more datapoints we have for people deploying large scale applications like Dataverse to Payara the better.

@pdurbin
Copy link
Member

pdurbin commented Oct 25, 2017

I'm still thinking about Glassfish vs. Payara, especially as I was poking at #4217 a bit today. I took a look at the release dates at https://en.wikipedia.org/wiki/GlassFish and https://en.wikipedia.org/wiki/Payara_Server and came up with the chart that shows days since previous release:

glassfish-vs-payara

I think the story it tells (which I already knew to some extent) is that Payara releases much more regularly than Glassfish.

Here's the spreadsheet the chart above is based on: https://docs.google.com/spreadsheets/d/1-BRlfcsByGHmKz8_rkskysSr0LWw8Ou0vBrznCLtb58/edit?usp=sharing

As http://opensourcesurvey.org/2017/ indicates, what users really care about in open source is security and stability:

screen shot 2017-10-24 at 10 01 18 pm

I suspect that more frequent releases generally means better security. I'm forever patching my Mac and Linux laptops at least.

Also, now that Glassfish is moving to Eclipse, when will the next release be after Glassfish 5.0? https://projects.eclipse.org/projects/ee4j/faq says, "Oracle may deliver maintenance releases of GlassFish 5.0." Glassfish feels a bit in limbo at the moment.

@smillidge any idea when Payara 5 will be out? 😄

@pdurbin
Copy link
Member

pdurbin commented Oct 27, 2017

Over at pull request #4244 I got Dataverse running on Glassfish 5. There are a couple changes I had to make that I don't full understand ( 6f72baa and 1530273 ) but the app basically works, I think! 😄

@pdurbin
Copy link
Member

pdurbin commented Oct 31, 2017

@izahn came up with a much better plot for the Glassfish vs. Payara release frequency data I mentioned above (thanks!):

releases

Here's the R script and the data:

@pdurbin
Copy link
Member

pdurbin commented Mar 19, 2018

I just noticed at https://javabot.evanchooly.com/logs/%23glassfish/2018-03-19 that people are chatting about how Payara 5 is out. They linked to https://twitter.com/Payara_Fish/status/975776806539284480

@pdurbin
Copy link
Member

pdurbin commented Mar 20, 2018

Heads up that "Payara 5 requires JDK8u161 or above" according to payara/Payara#2513 (comment)

Hat tip to @donsizemore for this discovery.

@poikilotherm
Copy link
Contributor

Hi @pdurbin,

back from vacation mentioned in #4248...

Re-Reading the issues about Glassfish and Payara you guys seem to tend to use Payara in the future?

Would this be a good starting point? Or should we just stick with Glassfish 4.1 for now?

Cheers,
Oliver

@pdurbin
Copy link
Member

pdurbin commented Aug 10, 2018

@poikilotherm welcome back! (I just got back from vacation myself.)

I don't believe any Dataverse installations are using Payara yet. I think everyone is using Glassfish 4.1, which came out it 2014. So you should use Glassfish 4.1 for now but if you have an extra server and want to play around with Payara I think it would be interesting to get Dataverse running on an application server like Payara that has a more regular release schedule than Glassfish does.

@pdurbin
Copy link
Member

pdurbin commented Oct 15, 2018

@poikilotherm thanks for opening #5068 and #5187, for chatting at http://irclog.iq.harvard.edu/dataverse/2018-10-15 , and for agreeing to work on this issue! Please let us know if there's help you need!

@poikilotherm
Copy link
Contributor

Please join discussion at https://groups.google.com/d/msgid/dataverse-dev/0937d60c-b2b7-d74b-1365-16f154d769d8%40fz-juelich.de about favoring Eclipse Glassfish or Payara 😄

@smillidge
Copy link
Contributor

Problem is the GET request does not have an alias present in the request so it is being set to null and I think propagated through somewhere to the validation on that first screen. I think is because of the
javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL setting in the web.xml.
I'm no JSF expert though.

@smillidge
Copy link
Contributor

smillidge commented Jun 3, 2019

setting javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL=false fixes it and makes the validation error go away. However as this is application wide I am not sure if any other code is relying on it.

@pdurbin
Copy link
Member

pdurbin commented Jun 3, 2019

@smillidge me neither but please don't let that stop you from making a pull request! 😄

@pdurbin
Copy link
Member

pdurbin commented Jun 3, 2019

setting javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL=false fixes it

I just made pull request #5908 for this. Small chunks. 😄

@smillidge
Copy link
Contributor

Actually I can fix that error using omnifaces
<o:viewParam name="alias" value="#{DataversePage.dataverse.alias}" default="root"/>

@pdurbin
Copy link
Member

pdurbin commented Jun 4, 2019

@smillidge that's a good thought and in pull request #5913 I just tried setting default to root (I had to upgrade to a newer version of Omnifaces) but as I've described in that pull request the "Create Dataverse" button doesn't work. I don't know if this is because I'm setting the default to root or not, unfortunately.

@smillidge
Copy link
Contributor

could well be. I don't know enough about the functional application as I'm approaching this purely as a server engineer :-)

pdurbin added a commit that referenced this issue Jun 11, 2019
Without a fix like this (or similar), JSF throws a validation error when
you visit the home page.
kcondon added a commit that referenced this issue Jun 12, 2019
prevent JSF validation error on Payara 5 #4172
pdurbin added a commit that referenced this issue Jun 13, 2019
kcondon added a commit that referenced this issue Jun 13, 2019
Revert "prevent JSF validation error on Payara 5 #4172"
@pdurbin
Copy link
Member

pdurbin commented Jun 14, 2019

Actually I can fix that error using omnifaces
<o:viewParam name="alias" value="#{DataversePage.dataverse.alias}" default="root"/>

@smillidge just an update that we tried this (merged it even) but discovered that clicking "Add" then "New Dataverse" stopped working. So we had to revert this fix yesterday. That was in pull request #5944.

setting javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL=false fixes it and makes the validation error go away.

I tried this in pull request #5908 and I agree with you that the validation error goes away. In addition, the pagination error goes away. That's when I stopped testing and sent it to code review. I just suggested at #5908 (comment) that perhaps we should revisit that fix because a long article at http://balusc.omnifaces.org/2015/10/the-empty-string-madness.html has me questioning how well INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL=true works on Glassfish 4.1 anyway.

I definitely feel like I'm still grasping at straws and I don't understand what changed between Glassfish 4.1 and newer versions. It's frustrating to feel stuck on a specific version of a single application server.

@smillidge
Copy link
Contributor

I think it is the empty GET param handling in the application. It probably needs to be handled in the business logic layer. For example for the page being zero the service was throwing an IllegalArgumentException which is pretty brutal. Defensive programming could be added to just set any value of page <= 0 to 1 in the service rather than throwing an error to the higher layers.

My guess is that for the alias parts of the application are expecting root but other parts e.g. "New Dataverse" are expecting the name to be null or empty string.

If you are stuck on a very specific version of GlassFish I suspect you are relying on the EL bug referred to in Balus' blog.

@pdurbin
Copy link
Member

pdurbin commented Jun 14, 2019

Defensive programming could be added to just set any value of page <= 0 to 1 in the service rather than throwing an error to the higher layers.

Yes, and yesterday I made pull request #5940 for exactly this.

My guess is that for the alias parts of the application are expecting root but other parts e.g. "New Dataverse" are expecting the name to be null or empty string.

Yes, probably. We need a better pull request than #5933 but I'm not sure what the "diff" will look like yet.

If you are stuck on a very specific version of GlassFish I suspect you are relying on the EL bug referred to in Balus' blog.

I believe this is sad but true. 😢

@smillidge thanks as always for your insight!!

poikilotherm added a commit to poikilotherm/dataverse that referenced this issue Aug 1, 2019
See https://bugs.eclipse.org/bugs/show_bug.cgi?id=429992

As we are stuck on Glassfish 4.1 for now (see IQSS#4172, IQSS#4248 and IQSS#4260),
we cannot simply upgrade. Meh.

This reverts commit c80aeea.
@poikilotherm
Copy link
Contributor

I just stumbled over https://bugs.eclipse.org/bugs/show_bug.cgi?id=429992 in
b0d9c66 . We need to get off old smelling fishes...

@scolapasta
Copy link
Contributor

Closing in favor of #6230

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature: Installer Type: Suggestion an idea User Role: Sysadmin Installs, upgrades, and configures the system, connects via ssh
Projects
None yet
Development

No branches or pull requests

6 participants