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 Feb 24 22:40:15 2017  
 
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 MarkupRich 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 May 2 21:51:41 2017, comment #8:

Verified fix. Closing report.

Rik <rik5>
Project Administrator
Tue May 2 21:49:58 2017, 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 Feb 27 16:29:02 2017, 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 Feb 27 12:48:20 2017, 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 Feb 26 21:46:18 2017, 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 Feb 25 20:48:04 2017, 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 Feb 25 03:22:41 2017, 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 Feb 24 23:46:53 2017, 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 Feb 24 22:40:15 2017, 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 May 2 21:51:41 2017rik5StatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Tue May 2 21:49:58 2017jweStatusConfirmed=>Ready For Test
    Mon Feb 27 12:48:20 2017philipnienhuisAttached File-=>Added bug50396_mxe_doc.patch, #39836
    Sat Feb 25 20:48:04 2017rik5Carbon-Copy-=>Added jwe
    Fri Feb 24 23:46:53 2017rik5Item GroupInstallation Failure=>Regression
      StatusNone=>Confirmed

    Back to the top


    Powered by Savane 3.1-cleanup1