Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 237177 - sci-visualization/paraview-3.3_pre20080514: python servermanager module fails to reload .pvsm state file
Summary: sci-visualization/paraview-3.3_pre20080514: python servermanager module fails...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High minor (vote)
Assignee: Markus Dittrich (RETIRED)
URL: http://www.paraview.org/pipermail/par...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-09-09 12:54 UTC by Tobias Froebel
Modified: 2009-07-24 17:30 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
proposed patch to fix server issues (paraview-3.3_pre20080514-pythonservermanager.patch,10.81 KB, patch)
2008-09-10 22:52 UTC, Markus Dittrich (RETIRED)
Details | Diff
Screenshot of Simple Cone 3D View with paraview 3.4 (paraview3_4_cone_ 3Dview.png,18.59 KB, image/png)
2008-10-20 08:39 UTC, Tobias Froebel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tobias Froebel 2008-09-09 12:54:08 UTC
The CVS version used in sci-visualization/paraview-3.3_pre20080514 seems to be unable to reload .pvsm state files in pvbatch mode. I was able to confirm the mentioned workaround by commenting line 1110 in file Utilities/VTKPythonWrapping/paraview/servermanager.py. See paraview pipermail comment.

http://www.paraview.org/pipermail/paraview/2008-May/008120.html

I guess switching to the current CVS version of paraview 3.3 resolves the problem, because former function LoadState() doesn't longer include the call
loader.SetRenderViewXMLName(rvname)

LoadState() Definition current paraview CVS build (26-08-2008):

def LoadState(filename, connection=None):
    """Given a state filename and an optional connection, loads the server
    manager state."""
    if not connection:
        connection = ActiveConnection
    if not connection:
        raise exceptions.RuntimeError, "Cannot load state without a connection"
    loader = vtkSMPQStateLoader()
    rvname = vtkSMRenderViewProxy.GetSuggestedRenderViewType(connection.ID)
    if rvname:
        pm = ProxyManager()
        pm.LoadState(filename, ActiveConnection.ID, loader)
        views = GetRenderViews()
        for view in views:
            # Make sure that the client window size matches the
            # ViewSize property. In paraview, the GUI takes care
            # of this.
            if view.GetClassName() == "vtkSMIceTDesktopRenderViewProxy":
                view.GetRenderWindow().SetSize(view.ViewSize[0], \
                                               view.ViewSize[1])
    else:
        raise exceptions.RuntimeError, "Could not load state because no appropriate render view was found."

Regards, Tobias 

Reproducible: Always
Comment 1 Wormo (RETIRED) gentoo-dev 2008-09-09 19:34:28 UTC
Thanks for reporting this issue. Assigning to maintainers.
Comment 2 Markus Dittrich (RETIRED) gentoo-dev 2008-09-10 13:54:47 UTC
Hi Tobias,

Thanks much for your note and the detailed description of
the problem. I'll either try to pull and test a more recent
CVS snapshot or patch it in the current version.

Best,
Markus
Comment 3 Markus Dittrich (RETIRED) gentoo-dev 2008-09-10 22:52:09 UTC
Created attachment 165178 [details, diff]
proposed patch to fix server issues

Unfortunately, the cvs snapshot I pulled this morning has 
some serious problems :( Hence, in the meantime, let's try
to just patch the manager itself. Could you please give the above 
patch a try and see if it fixes the problem and the server
works properly?

Thanks,
Markus
Comment 4 Markus Dittrich (RETIRED) gentoo-dev 2008-09-12 21:55:19 UTC
Unfortunately, it seems that I am currently having problems
running the paraview-3.3 GUI in general due to some libpng 
error (even the version in portage that used to work just
fine is affected). Anybody else having this problem?

Thanks,
Markus
Comment 5 Tobias Froebel 2008-10-01 11:29:28 UTC
(In reply to comment #3)
> Created an attachment (id=165178) [edit]
> proposed patch to fix server issues
> 
> Unfortunately, the cvs snapshot I pulled this morning has 
> some serious problems :( Hence, in the meantime, let's try
> to just patch the manager itself. Could you please give the above 
> patch a try and see if it fixes the problem and the server
> works properly?
> 
> Thanks,
> Markus
> 

Thanks for the proosed patch. Unfortunately it doesn't seem to solve all the problems.
I tried the patched paraview version with my known to work example scripts. Two cases were included: 

Case A: Load an existing .pvsm state file
  -> Seems to work without any special work around.

Case B: Save an existing visualization pipeline to a .psvm state file.
  -> The script fails due to a wrong function call at line 267 of the file servermanager.py

 I think this is a problem of the proposed patch, since it removes the 2 argument call of line 267:
 
262    def GetDataInformation(self, idx=0):
263        """This method returns a DataInformation wrapper around a
264        vtkPVDataInformation"""
265        if self.SMProxy:
266            return DataInformation( \
267                self.SMProxy.GetDataInformation(idx), \
268                self.SMProxy, idx)

Changing back to the former call in line 267 solves the problem for me:

262    def GetDataInformation(self, idx=0):
263        """This method returns a DataInformation wrapper around a
264        vtkPVDataInformation"""
265        if self.SMProxy:
266            return DataInformation( \
267                self.SMProxy.GetDataInformation(idx, False), \
268                self.SMProxy, idx)

Maybe this is more a paraview3.3 problem than gentoo relatet stuff. I think one should remove the concernign lines of the prososed patch to avoid a change to the new one argument call of line 267. 

Tobias 

  
Comment 6 Markus Dittrich (RETIRED) gentoo-dev 2008-10-01 12:55:10 UTC
Hi Tobias,

Thanks for your feedback. Since the patch was taken pretty straight 
from paraview's cvs these are probably all paraview related issues. 
I'll try to have another look at things, but unfortunately, paraview 
currently breaks on both of my dev systems due to some strange libpng 
error that I have yet to track down before continuing to work on the patch.
Since I am not a paraview user, would you be able to post detailed
instructions/data files for loading/saving pvsm files so I can test 
these things a bit myself?

Thanks a lot,
Markus
Comment 7 Tobias Froebel 2008-10-02 08:54:37 UTC
(In reply to comment #6)
> Hi Tobias,
> 
> Thanks for your feedback. Since the patch was taken pretty straight 
> from paraview's cvs these are probably all paraview related issues. 
> I'll try to have another look at things, but unfortunately, paraview 
> currently breaks on both of my dev systems due to some strange libpng 
> error that I have yet to track down before continuing to work on the patch.
> Since I am not a paraview user, would you be able to post detailed
> instructions/data files for loading/saving pvsm files so I can test 
> these things a bit myself?

Hello the following lines should enable some short testing of the SaveState() - LoadState() mechanism:

1. Generate a visualization pipeline and save the state to a file foobar.pvsm

servermanager_savestate.py:
#!/usr/bin/python
# -*- coding: utf-8 -*
import sys
sys.path.insert(0 ,"/usr/lib/paraview-3.3")


from paraview import servermanager
sm = servermanager

servermanager.Connect()

filename="/path/to/file/foobar.pvsm"

#Generic Cone Source for testing
center = [0.0, 0.0, 0.0]
radius = 0.2
height = radius*1.5
cone = sm.sources.ConeSource(Center=center,  Radius=radius,  Height=height, Resolution=30)


#Elevation Filter to generate a color
elev=sm.filters.ElevationFilter(Input = cone)
elev.HighPoint = [0, 0, 0]
elev.LowPoint = [1, 0, 0]

#Render View
view = sm.CreateRenderView()
view.ViewSize = [800, 600]
view.Background = [1.0, 1.0, 1.0]


#Representation
rep=sm.CreateRepresentation(elev, view)
rep.Representation = 2 
rep.LineWidth = 2
rep.Color=[0.5, 0.5, 0.5]
rep.EdgeColor=[0.33, 0.33, 0.33]


#Lookup table to color the representation
lt = sm.rendering.PVLookupTable()
property="Elevation"
pdi=rep.Input.GetData().Proxy.GetDataInformation().DataInformation.GetPointDataInformation()
min_value=0.0
max_value=1.0
hit = False
for i in range(0, pdi.GetNumberOfArrays()):
    if (property == pdi.GetArrayInformation(i).GetName()):
        hit = True
        min_value = pdi.GetArrayInformation(i).GetComponentRange(0)[0]  #Minimum
        max_value = pdi.GetArrayInformation(i).GetComponentRange(0)[1]  #Maximum
        break
if (hit):
    lt.RGBPoints = [min_value, 0, 0, 1, max_value, 1, 0, 0]
    lt.NumberOfTableValues = 25
    lt.ColorSpace = 1

    rep.ColorAttributeType = 0
    rep.ColorArrayName = property
    rep.LookupTable = lt 

#Register everything
sm.ProxyManager().RegisterProxy("sources", "cone1", cone)
sm.ProxyManager().RegisterProxy("sources", "elev1", elev)
sm.ProxyManager().RegisterProxy("views", "view1", view)
sm.ProxyManager().RegisterProxy("lookup_tables", "Elevation1", lt)
sm.ProxyManager().RegisterProxy("representations", "rep1", rep)

#Save state to filename
sm.SaveState(filename)

#Render the whole scene
view.StillRender()

If everything works fine you should see a colored cone in a new window.
Now try to execute the load script:

servermanager_loadstate.py:
#!/usr/bin/python
# -*- coding: utf-8 -*
import sys
sys.path.insert(0 ,"/usr/lib/paraview-3.3")

from paraview import servermanager
sm = servermanager

filename="/path/to/file/foobar.pvsm"

servermanager.Connect()
sm.LoadState(filename)

view = sm.GetRenderView()
view.StillRender()

If everything works fine again, you should see the same cone again. Maybe you can then even try to load the foobar.pvsm file into the GUI of paraview3.3.

I this stuff is in someway useful for you, best regards Tobias.



> 
> Thanks a lot,
> Markus
> 

Comment 8 Markus Dittrich (RETIRED) gentoo-dev 2008-10-02 13:02:29 UTC
(In reply to comment #7)

Thank you very much, Tobias!

Also, since you seem to be able to build paraview without
any problems while I am plagued with these pesky libpng/icon 
issues, would you please be able to post your emerge --info as well 
as the version of your installed qt4 so I could try tracking down 
the issues I am having.

Thanks much,
Markus

Comment 9 Markus Dittrich (RETIRED) gentoo-dev 2008-10-04 10:40:35 UTC
(In reply to comment #8)
> Also, since you seem to be able to build paraview without
> any problems while I am plagued with these pesky libpng/icon 
> issues, would you please be able to post your emerge --info as well 
> as the version of your installed qt4 so I could try tracking down 
> the issues I am having.

Nevermind, I was finally able to track that down and it seems to
be due to certain LDFLAGS (such as --as-needed). Looks like I can
now finally build paraview again :)

best,
Markus

Comment 10 Tobias Froebel 2008-10-13 06:56:33 UTC
(In reply to comment #9)
> (In reply to comment #8)
> > Also, since you seem to be able to build paraview without
> > any problems while I am plagued with these pesky libpng/icon 
> > issues, would you please be able to post your emerge --info as well 
> > as the version of your installed qt4 so I could try tracking down 
> > the issues I am having.
> 
> Nevermind, I was finally able to track that down and it seems to
> be due to certain LDFLAGS (such as --as-needed). Looks like I can
> now finally build paraview again :)
> 
> best,
> Markus
> 

Hello Markus,

since you already mentioned that you are able to build paraview again, may I ask you if you are going to update the paraview3.3_pre ebuild to the actual cvs release.

Regards, Tobias 
Comment 11 Markus Dittrich (RETIRED) gentoo-dev 2008-10-13 13:08:07 UTC
(In reply to comment #10)
> 
> Hello Markus,
> 
> since you already mentioned that you are able to build paraview again, may I
> ask you if you are going to update the paraview3.3_pre ebuild to the actual cvs
> release.
> 
> Regards, Tobias 
> 

Hi Tobias,

paraview is on the top of my to-do list. Hopefully, I'll have some time
over the next couple of days.

Best,
Markus

Comment 12 Markus Dittrich (RETIRED) gentoo-dev 2008-10-15 13:01:35 UTC
I've pulled the 3.4.0 branch of paraview which will presumably
become the new 3.4.0 release at some point. Things look fine
for the most part (including pvsm saving/loading). Unfortunately,
there currently is a bug somewhere in the 3.4.0 tree that causes
the 3D view to scale improperly. Hopefully, this will be fixed
soon by upstream or maybe I can track it down. I've posted the
current ebuild + sources as a tarball at [1] in case you'd like 
to give it a spin.

Best,
Markus

[1] http://dev.gentoo.org/~markusle/
Comment 13 Tobias Froebel 2008-10-16 10:57:16 UTC
(In reply to comment #12)
> I've pulled the 3.4.0 branch of paraview which will presumably
> become the new 3.4.0 release at some point. Things look fine
> for the most part (including pvsm saving/loading). Unfortunately,
> there currently is a bug somewhere in the 3.4.0 tree that causes
> the 3D view to scale improperly. Hopefully, this will be fixed
> soon by upstream or maybe I can track it down. I've posted the
> current ebuild + sources as a tarball at [1] in case you'd like 
> to give it a spin.
> 
> Best,
> Markus
> 
> [1] http://dev.gentoo.org/~markusle/
> 


Hello Markus,

thank you for the paraview-3.4 ebuild. I was able to build the posted paraview version. All my Load-State / Save-State cases seem to work.


Regards, Tobias.


---

emerge --info
Portage 2.2_rc12 (default/linux/amd64/2008.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.25-gentoo-r6 x86_64)
=================================================================
System uname: Linux-2.6.25-gentoo-r6-x86_64-AMD_Turion-tm-_64_Mobile_Technology_MT-30-with-glibc2.2.5
Timestamp of tree: Mon, 13 Oct 2008 08:45:02 +0000
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.5.2-r7
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.6.2
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r2
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache distlocks parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="en_GB en_US de en"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/sunrise /usr/portage/local/layman/science /usr/portage/local/layman/roslin"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X acl acpi aiglx alsa amd64 arts berkdb bzip2 cairo cli cracklib crypt cups dbus de dhcp doc dri dvb firefox fortran gdbm gpm hal iconv ipv6 isdnlog kde lame midi mmx mp3 mpeg mudflap multilib ncurses nls nptl nptlonly nvidia ogg opengl openmp oss pam pcre perl pppd python qt3 qt3support qt4 readline reflection session spl sse sse2 ssl sysfs tcl tcltk tcpd tk unicode usb-wt220u vorbis xorg xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" DVB_CARDS="usb-wt220u usb-dtt200u" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB en_US de en" LIRC_DEVICES="serial sir" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa i810"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 14 Markus Dittrich (RETIRED) gentoo-dev 2008-10-16 13:05:11 UTC
Great and thanks much for the feedback. I need to figure out
why paraview all of a sudden is giving me trouble with the
3D view. Since the same happens now also for the paraview currently 
in portage (which used to be fine) this most likely is due to an 
issue with some dependency on my system, probably Qt. As soon as I 
figure out the problem I'll bump the ebuild.

Best,
Markus
Comment 15 Tobias Froebel 2008-10-20 08:38:43 UTC
(In reply to comment #14)
> Great and thanks much for the feedback. I need to figure out
> why paraview all of a sudden is giving me trouble with the
> 3D view. Since the same happens now also for the paraview currently 
> in portage (which used to be fine) this most likely is due to an 
> issue with some dependency on my system, probably Qt. As soon as I 
> figure out the problem I'll bump the ebuild.
> 
> Best,
> Markus
> 

Hello,

I am not sure which kind of problems occure on your machine with the 3D view. If I load the proposed .pvsm file (created with servermanager_savestate.py from comment #7) into paraview3.4, I get the attatched picture of the simple cone in the 3D-view of paraview.

Maybe you could describe the problems you have in detail. Did you try to switch between normal and parallel projection method in the view settings dialog of paraview?

Regards Tobias 

Comment 16 Tobias Froebel 2008-10-20 08:39:56 UTC
Created attachment 169158 [details]
Screenshot of Simple Cone 3D View with paraview 3.4
Comment 17 Markus Dittrich (RETIRED) gentoo-dev 2008-10-20 14:47:15 UTC
(In reply to comment #15)
> 
> Maybe you could describe the problems you have in detail. Did you try to switch
> between normal and parallel projection method in the view settings dialog of
> paraview?
> 

I've posted a screenshot of the interface on my dev space. It seems that Qt
doesn't properly resize the canvas to the actual window dimensions. It used 
to work fine with Qt4.1 but seems to break with Qt4.2 (unless you are running Qt4.2 as well which would destroy my theory ;) ). I've tried cvs head, i.e., the paraview 3.5 branch, which works fine again even using Qt4.2. What
version of Qt are you currently running?

Thanks,
Markus

Comment 18 Tobias Froebel 2008-10-20 15:40:18 UTC
(In reply to comment #17)
> (In reply to comment #15)
> > 
> > Maybe you could describe the problems you have in detail. Did you try to switch
> > between normal and parallel projection method in the view settings dialog of
> > paraview?
> > 
> 
> I've posted a screenshot of the interface on my dev space. It seems that Qt
> doesn't properly resize the canvas to the actual window dimensions. It used 
> to work fine with Qt4.1 but seems to break with Qt4.2 (unless you are running
> Qt4.2 as well which would destroy my theory ;) ). I've tried cvs head, i.e.,
> the paraview 3.5 branch, which works fine again even using Qt4.2. What
> version of Qt are you currently running?
> 
> Thanks,
> Markus
> 


Hello, emerge -spvt qt gives

*  x11-libs/qt
      Latest version available: 4.3.3
      Latest version installed: 4.3.3
      Size of files: 41,349 kB
      Homepage:      http://www.trolltech.com/
      Description:   The Qt toolkit is a comprehensive C++ application development framework.
      License:       || ( QPL-1.0 GPL-2 )

So it's 4.3.3 on my x86_64 machine. 

Regards, Tobias.
Comment 19 Markus Dittrich (RETIRED) gentoo-dev 2008-10-21 13:31:19 UTC
(In reply to comment #18)

> So it's 4.3.3 on my x86_64 machine. 
> 
> Regards, Tobias.
> 

Thank you for checking and in my above comment I actually
meant to say that it breaks with Qt4.4 and used to work
with Qt4.3. Since it seems to work for you as well with
4.3.3 it may very well be a Qt-4.4 problem. I'll see if I
can track it down.

Best,
Markus

Comment 20 Markus Dittrich (RETIRED) gentoo-dev 2009-07-24 17:30:31 UTC
Hopefully, this issue is fixed in the most recent
version of paraview in portage (3.6.1).

Please file a new bug against paraview-3.6.1 if
you still encounter problems.

Best,
Markus