This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 262231 - Exception Reporter cannot post bug through Firewall
Summary: Exception Reporter cannot post bug through Firewall
Status: REOPENED
Alias: None
Product: ide
Classification: Unclassified
Component: Logger (show other bugs)
Version: 8.1
Hardware: PC Windows 7
: P2 normal with 1 vote (vote)
Assignee: Martin Entlicher
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-05-26 08:54 UTC by bht
Modified: 2016-09-27 09:27 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
messages.log file from failed upload (107.10 KB, application/octet-stream)
2016-09-13 23:23 UTC, bht
Details

Note You need to log in before you can comment on or make changes to this bug.
Description bht 2016-05-26 08:54:54 UTC
I have not been able to upload issues from the exception reporter once through our corporate firewall WebMarshal. On the other hand, it is possible to let NetBeans update itself, and to run Maven using external repositories.

My description is vague because I do not have an idea about how to reproduce this.

Could I please get some code that mimics the NetBeans Exception reporter, and some method that causes NetBeans to report an exception.

I am very interested to help solve this by testing because I often do not have the time to report a bug using the alternative manual method.
Comment 1 Martin Entlicher 2016-08-31 21:18:14 UTC
This looks to be a Firewall setting rather than something that could be solved in NetBeans.

Maybe the difference is that the exception reporter uses https?
The appropriate code is in
uihandler/src/org/netbeans/modules/uihandler/Installer.java
on line 1817 it opens the connection.
By default in NetBeans IDE it connects to
https://netbeans.org/nonav/uigestures/error2.html

If it fails during send, it tries to post the data to statistics.netbeans.org.

You can debug the appropriate code starting in the Installer class.

To trigger an exception, you can for instance go into the main menu:
Debug -> Attach Debugger and write a number that exceeds the valid port range, e.g.: 10000000. After you press O.K., an exception is thrown.

Hope that helps. If you find the problem, please share it here. Thanks!
Comment 2 Martin Entlicher 2016-08-31 21:20:30 UTC
Resolving as works-for-me, as I think that this needs to be solved in the firewall settings.
Comment 3 bht 2016-09-13 23:21:09 UTC
I recorded the server response via the ZAP proxy which runs locally on my computer between NetBeans and the corporate firewall. It records as a response to the failed POST request as shown below.

Request:
POST http://statistics.netbeans.org/analytics/upload.jsp HTTP/1.1
Content-Type: multipart/form-data; boundary=--------konec<>bloku
Pragma: no-cache
Cache-control: no-cache
User-Agent: NetBeans
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Proxy-Connection: keep-alive
Transfer-Encoding: chunked
Host: statistics.netbeans.org


Response:

HTTP/1.1 413 Request Entity Too Large
Date: Tue, 13 Sep 2016 22:55:10 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: close
Proxy-Connection: close
Via: 1.1 WXWEBPD2
X-WebMarshal-RequestID: E00108C0-2585-4008-8EFE-25E86F2D5B9E


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>413 Request Entity Too Large</title>
</head><body>
<h1>Request Entity Too Large</h1>
The requested resource<br />/analytics/upload.jsp<br />
does not allow request data with POST requests, or the amount of data provided in
the request exceeds the capacity limit.
<hr>
<address>Apache/2.2.15 (Oracle) Server at statistics.netbeans.org Port 80</address>
</body></html>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>413 Request Entity Too Large</title>
</head><body>
<h1>Request Entity Too Large</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.2.15 (Oracle) Server at statistics.netbeans.org Port 80</address>
</body></html>
Comment 4 bht 2016-09-13 23:23:19 UTC
Created attachment 162040 [details]
messages.log file from failed upload
Comment 5 Martin Entlicher 2016-09-21 12:48:35 UTC
In the messages log, there is: Response Code = 504, message = Gateway Timeout
This could happen when our server statistics.netbeans.org is down. That can rarely happen. But you said that you were not able to report exceptions at all, the server availability should not be the issue.

Would it be possible for you to get some log from WebMarshal to check if it logs some error or reason for blocking?

I've no experience with WebMarshal, but I've found this:
https://www3.trustwave.com/support/search/result.asp?helpfile=%2Fsupport%2Fsearch%2Fwebmarshal%2Ffiles%2Fwm%2Dsomecommonissues%2Ehtm&query=POST
and it says:

10.5.4 Warning Page Causes Some Websites To Fail

This usually happens when a site has off-site links, most often when posting a form. The problem occurs when a user enters data into a form and clicks the Submit button. WebMarshal presents a page that asks if temporary access is required. If the user clicks Yes, they find that the form data has not been correctly posted.

To resolve the problem, several actions are possible:

•         Create a rule to permit open access to the sites concerned.

•         Grant additional permissions to the users who are affected.


Maybe WebMarshal detects it as suspicious when POST is sent to an address that was not retrieved before. Could you try to explicitly permit an access to statistics.netbeans.org?
Comment 6 bht 2016-09-21 23:02:35 UTC
Hi,

I still get the error "413 Request Entity Too Large". I downloaded the NetBeans sources so I can debug the process. How do I debug NetBeans? I have never worked with the sources. At the same time, my aim would be to take Netbeans out of the equation as follows:

Could you please write a simple HTML page containing all the form fields required with content to post a bug to the system successfully, and attach this HTML source file to this bug or send via email to me. It appears there is already a file similar to this in the project: uihandler/test/unit/src/org/netbeans\modules/uihandler/parsing_with_errors.html. Please try it and make it work for you. Then I can use this first from a computer that is directly connected to the internet, successfully of course, and then through the firewall with a correctly configured browser.

With these two parallel approaches, I am hopefully in the position to pinpoint the problem, and to make a suggestion to avoid the problem on the NetBeans side (because I can experiment with this form and any derived approaches). It is more difficult to argue with WebMarshal administrators on a case by case basis. That defeats the purpose of IT. However, if it is really a configuration issue, then I will contact WebMarshal with the details.

Many thanks.
Comment 7 bht 2016-09-27 02:57:04 UTC
I have personally inspected the WebMarshal log entries after a failed upload. I cannot see anything extraordinary. In contrast I have seen requests to other sites that were blocked.

The best way forward from my perspective would be to use a simple web page that contains all the associated form fields with values, with an upload button.

That little tool could be used as a starting point to pinpoint the problem.

My idea would be, if the web page method works, to write a program that does the same, and from a location without firewall, modify the request until I get the error. It might be something like some header is missing such as content-length.

Thanks.
Comment 8 bht 2016-09-27 09:19:32 UTC
I have always been able to post bugs including log file uploads using the web browser without receiving special WebMarshal prompts. AFAIK there are no WebMarshal rules in place that would restrict access to the site.
Comment 9 Martin Entlicher 2016-09-27 09:27:03 UTC
Thanks for your comments, I'll try to prepare something that will do the POST request.
It goes to http://statistics.netbeans.org/analytics/upload.jsp which is a different site from where you submit issues manually.