bugGNU Octave - Bugs: bug #50396, documentation tab in GUI empty

 
 

bug #50396: documentation tab in GUI empty

Submitted by:  A.R. Burgers <arb>
Submitted on:  Fri 24 Feb 2017 10:40:15 PM UTC  
 
Category: DocumentationSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Regression
Status: FixedAssigned to: None
Originator Name: Open/Closed: Closed
Release: devOperating System: Any

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Tue 02 May 2017 09:51:41 PM UTC, comment #8:

Verified fix. Closing report.

Rik <rik5>
Project Administrator
Tue 02 May 2017 09:49:58 PM UTC, comment #7:

I pushed this changeset:

http://hg.savannah.gnu.org/hgweb/octave/rev/b605146ed2ed

Does it fix the problem for you? The change is to initialize the global variables in the application object instead of the interpreter object. That way, Vinfo_file is available for the GUI initialization.

There are about 50 global variables like Vinfo_file. Many are given default values by the call to install_defaults. Eventually, I'd like to move variables like this to be members of the application or interpreter object, whichever is more appropriate for each of them.

John W. Eaton <jwe>
Project Administrator
Mon 27 Feb 2017 04:29:02 PM UTC, comment #6:

The patch in comment #5 will do for a workaround on Windows, but Linux and Mac users still have a problem. They can temporarily use the fix in comment #2 that I suggested. Long term, this needs to be fixed properly so it works reliably everywhere.

Rik <rik5>
Project Administrator
Mon 27 Feb 2017 12:48:20 PM UTC, comment #5:

Another quick fix, based on Rik's comment #2, would be the attached patch for octave.vbs (in mxe-octave)
That patch seems to work quite fine for me.

(file #39836)

Philip Nienhuis <philipnienhuis>
Project Member
Sun 26 Feb 2017 09:46:18 PM UTC, comment #4:

As a quick hack to verify the race condition I added a "sleep (5);" function call to the constructor in webinfo.cc. Unfortunately, this just delayed the launch of the GUI by 5 seconds, and then the same printf ordering showing the GUI starting before the Octave interpreter thread.

Rik <rik5>
Project Administrator
Sat 25 Feb 2017 08:48:04 PM UTC, comment #3:

I added some print statements and from what I can determine this is an order of execution issue (race condition). The GUI browser for the documentation uses the global variable Vinfo_file which contains the full-path name of the file to use. The code for this is in libgui/src/qtinfo/webinfo.cc. The Octave interpreter sets this global variable in set_info_file_name() which in turn is called by the general initialization function install_defaults().

The problem seems to be the multi-threaded nature of the GUI with one thread for the actual GUI and another thread for the Octave interpreter. When I run the GUI the print statements reveal that the GUI is initializing itself and grabbing the value of Vinfo_file before the Octave interpreter has called install_defaults(). This is likely to be a generic problem because there are other global variables that the GUI uses which reside in the Octave interpreter.

I've added jwe to the CC list since he understands the start-up sequence, including the fork and exec model, better than I do.

Rik <rik5>
Project Administrator
Sat 25 Feb 2017 03:22:41 AM UTC, comment #2:

The problem is that the GUI, not the CLI, is getting a blank name for the info file. As a workaround, you can supply the filename on the command line.

Rik <rik5>
Project Administrator
Fri 24 Feb 2017 11:46:53 PM UTC, comment #1:

Confirmed. The files are there but the GUI does not acknowledge them. By contrast, if I start octave with --no-gui and use the CLI then the info files are available. The correct location is used--I checked by using the info_file() command.

Rik <rik5>
Project Administrator
Fri 24 Feb 2017 10:40:15 PM UTC, original submission:

When I install current dev versions, and go the documentation tab in the GUI, the documentation tab show this message:

In my 4.2.0 installation the documentation tab works as expected.

A.R. Burgers <arb>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #39836:  bug50396_mxe_doc.patch added by philipnienhuis (520B - application/octet-stream)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by jwe (Posted a comment)
  • -unavailable- added by rik5
  • -unavailable- added by rik5 (Posted a comment)
  • -unavailable- added by arb (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 7 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 02 May 2017 09:51:41 PM UTCrik5StatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Tue 02 May 2017 09:49:58 PM UTCjweStatusConfirmed=>Ready For Test
    Mon 27 Feb 2017 12:48:20 PM UTCphilipnienhuisAttached File-=>Added bug50396_mxe_doc.patch, #39836
    Sat 25 Feb 2017 08:48:04 PM UTCrik5Carbon-Copy-=>Added jwe
    Fri 24 Feb 2017 11:46:53 PM UTCrik5Item GroupInstallation Failure=>Regression
      StatusNone=>Confirmed

    Back to the top


    Powered by Savane 3.1-cleanup1