Hi,

I have seen this error mostly relating to a plugin being loaded on the client side but not the server side. It looks like vtk1DTransferFunctionFilter, is part of a PointSprite plugin. You could check the tools->plugin manager dialog to see if the client and server have the same plugins loaded?

It would also be helpful to know what type of file have you tried to open?

good luck
Burlen



Pierre-Olivier Dallaire wrote:
Hi,

I'm facing an error under the client-server mode. As soon as I try to open a 
file, paraview crashes with this error on the
server side :

ERROR: In /home/podallaire/ParaView/Servers/Common/vtkProcessModule.cxx, line 
1065
vtkProcessModule (0x851da0): Cannot create object of type 
"vtk1DTransferFunctionFilter".
while processing
Message 0 = New
  Argument 0 = string_value {vtk1DTransferFunctionFilter}
  Argument 1 = id_value {387}


ERROR: In /home/podallaire/ParaView/Servers/Common/vtkProcessModule.cxx, line 
1066
vtkProcessModule (0x851da0): Aborting execution for debugging purposes.

....


Any idea what is going on ? I tried different files - same result.

Regards,

PO

On 2010-04-30, at 2:49 PM, burlen wrote:

yeah, that's a typo in the bug report. Both last night and this morning I have 
been unable to access mantis or the the pv web site. Page never loads. I'll try 
later.

pat marion wrote:
Hey Burlen, on the bug report page for 10283, I think you need to fix the 
command line you are testing with :

$ ssh remote cmd1 && cm2

will execute cmd1 on remote and cmd2 locally.  It should be:

$ ssh remote "cmd1 && cmd2"

Pat

On Fri, Apr 30, 2010 at 9:12 AM, pat marion <pat.mar...@kitware.com 
<mailto:pat.mar...@kitware.com>> wrote:

   I have applied your patch.  I agree that paraview should explicity
   close the child process.  But... what I am pointing out is that
   calling QProcess::close() does not help in this situation.  What I
   am saying is that, even when paraview does kill the process, any
   commands run by ssh on the other side of the netpipe will be
   orphaned by sshd.  Are you sure you can't reproduce it?


   $ ssh localhost sleep 1d
   $ < press control-c >
   $ pidof sleep
   $ # sleep is still running

   Pat


   On Fri, Apr 30, 2010 at 2:08 AM, burlen <burlen.lor...@gmail.com
   <mailto:burlen.lor...@gmail.com>> wrote:

       Hi Pat,

       From my point of view the issue is philosophical, because
       practically speaking I couldn't reproduce the orphans with out
       doing something a little odd namely, ssh ... &&  sleep 1d.
       Although the fact that a user reported suggests that it may
       occur in the real world as well. The question is this: should
       an application explicitly clean up resources it allocates? or
       should an application rely on the user not only knowing that
       there is the potential for a resource leak but also knowing
       enough to do the right thing to avoid it (eg ssh -tt ...)? In
       my opinion, as a matter of principle, if PV spawns a process
       it should explicitly clean it up and there should be no way it
       can become an orphan. In this case the fact that the orphan
       can hold ports open is particularly insidious, because further
       connection attempt on that port fails with no helpful error
       information. Also it is not very difficult to clean up a
       spawned process. What it comes down to is a little book
       keeping to hang on to the qprocess handle and a few lines of
       code called from pqCommandServerStartup destructor to make
       certain it's cleaned up. This is from the patch I submitted
       when I filed the bug report.

       +    // close running process
       +    if (this->Process->state()==QProcess::Running)
       +      {
       +      this->Process->close();
       +      }
       +    // free the object
       +    delete this->Process;
       +    this->Process=NULL;

       I think if the cluster admins out there new which ssh options
       (GatewayPorts etc) are important for ParView to work
       seamlessly, then they might be willing to open them up. It's
       my impression that the folks that build clusters want tools
       like PV to be easy to use, but they don't necessarily know all
       the in's and out's of confinguring and running PV.

       Thanks for looking at this again! The -tt option to ssh is
       indeed a good find.

       Burlen

       pat marion wrote:

           Hi all!

           I'm bringing this thread back- I have learned a couple new
           things...

           -----------------------
           No more orphans:

           Here is an easy way to create an orphan:

             $ ssh localhost sleep 1d
             $ <press control c>

           The ssh process is cleaned up, but sshd orphans the sleep
           process.  You can avoid this by adding '-t' to ssh:

            $ ssh -t localhost sleep 1d

           Works like a charm!  But then there is another problem...
           try this command from paraview (using QProcess) and it
           still leaves an orphan, doh!  Go back and re-read ssh's
           man page and you have the solution, use '-t' twice: ssh -tt

           -------------------------
           GatewayPorts and portfwd workaround:

           In this scenario we have 3 machines: workstation,
           service-node, and compute-node.  I want to ssh from
           workstation to service-node and submit a job that will run
           pvserver on compute-node.  When pvserver starts on
           compute-node I want it to reverse connect to service-node
           and I want service-node to forward the connection to
           workstation.  So here I go:

             $ ssh -R11111:localhost:11111 service-node qsub
           start_pvserver.sh

           Oops, the qsub command returns immediately and closes my
           ssh tunnel.  Let's pretend that the scheduler doesn't
           provide an easy way to keep the command alive, so I have
           resorted to using 'sleep 1d'.  So here I go, using -tt to
           prevent orphans:

            $ ssh -tt -R11111:localhost:11111 service-node "qsub
           start_pvserver.sh && sleep 1d"

           Well, this will only work if GatewayPorts is enabled in
           sshd_config on service-node.  If GatewayPorts is not
           enabled, the ssh tunnel will only accept connections from
           localhost, it will not accept a connection from
           compute-node.  We can ask the sysadmin to enable
           GatewayPorts, or we could use portfwd.  You can run
           portfwd on service-node to forward port 22222 to port
           11111, then have compute-node connect to
           service-node:22222.  So your job script would launch
           pvserver like this:

            pvserver -rc -ch=service-node -sp=22222

           Problem solved!  Also convenient, we can use portfwd to
           replace 'sleep 1d'.  So the final command, executed by
           paraview client:

            ssh -tt -R 11111:localhost:11111 service-node "qsub
           start_pvserver.sh && portfwd -g -c fwd.cfg"

           Where fwd.cfg contains:

            tcp { 22222 { => localhost:11111 } }


           Hope this helps!

           Pat

           On Fri, Feb 12, 2010 at 7:06 PM, burlen
           <burlen.lor...@gmail.com <mailto:burlen.lor...@gmail.com>
           <mailto:burlen.lor...@gmail.com
           <mailto:burlen.lor...@gmail.com>>> wrote:


                  Incidentally, this brings up an interesting point about
                  ParaView with client/server.  It doesn't try to
           clean up it's
                  child processes, AFAIK.  For example, if you set up
           this ssh
                  tunnel inside the ParaView GUI (e.g., using a
           command instead
                  of a manual connection), and you cancel the
           connection, it
                  will leave the ssh running.  You have to track down
           the ssh
                  process and kill it yourself.  It's minor thing,
           but it can
                  also prevent future connections if you don't
           realize there's a
                  zombie ssh that kept your ports open.

              I attempted to reproduce on my kubuntu 9.10, qt 4.5.2
           system, with
              slightly different results, which may be qt/distro/os
           specific.

              On my system as long as the process ParaView spawns
           finishes on
              its own there is no problem. That's usually how one
           would expect
              things to work out since when the client disconnects
           the server
              closes followed by ssh. But, you are right that PV never
              explicitly kills or otherwise cleans up after the
           process it
              starts. So if the spawned process for some reason
           doesn't finish
              orphan processes are introduced.

              I was able to produce orphan ssh processes, giving the
           PV client a
              server start up command that doesn't finish. eg

                ssh ... pvserver ... && sleep 100d

              I get the situation you described which prevents further
              connection on the same ports. Once PV tries and fails
           to connect
              on th eopen ports, there is crash soon after.

              I filed a bug report with a patch:
              http://www.paraview.org/Bug/view.php?id=10283



              Sean Ziegeler wrote:

                  Most batch systems have an option to wait until the
           job is
                  finished before the submit command returns.  I know
           PBS uses
                  "-W block=true" and that SGE and LSF have similar
           options (but
                  I don't recall the precise flags).

                  If your batch system doesn't provide that, I'd
           recommend
                  adding some shell scripting to loop through
           checking the queue
                  for job completion and not return until it's done.
            The sleep
                  thing would work, but wouldn't exit when the server
           finishes,
                  leaving the ssh tunnels (and other things like
           portfwd if you
                  put them in your scripts) lying around.

                  Incidentally, this brings up an interesting point about
                  ParaView with client/server.  It doesn't try to
           clean up it's
                  child processes, AFAIK.  For example, if you set up
           this ssh
                  tunnel inside the ParaView GUI (e.g., using a
           command instead
                  of a manual connection), and you cancel the
           connection, it
                  will leave the ssh running.  You have to track down
           the ssh
                  process and kill it yourself.  It's minor thing,
           but it can
                  also prevent future connections if you don't
           realize there's a
                  zombie ssh that kept your ports open.


                  On 02/08/10 21:03, burlen wrote:

                      I am curious to hear what Sean has to say.

                      But, say the batch system returns right away
           after the job
                      is submitted,
                      I think we can doctor the command so that it
           will live for
                      a while
                      longer, what about something like this:

                      ssh -R XXXX:localhost:YYYY remote_machine
                      "submit_my_job.sh && sleep
                      100d"


                      pat marion wrote:

                          Hey just checked out the wiki page, nice! One
                          question, wouldn't this
                          command hang up and close the tunnel after
           submitting
                          the job?
                          ssh -R XXXX:localhost:YYYY remote_machine
           submit_my_job.sh
                          Pat

                          On Mon, Feb 8, 2010 at 8:12 PM, pat marion
                          <pat.mar...@kitware.com
           <mailto:pat.mar...@kitware.com>
           <mailto:pat.mar...@kitware.com
           <mailto:pat.mar...@kitware.com>>
                          <mailto:pat.mar...@kitware.com
           <mailto:pat.mar...@kitware.com>

                          <mailto:pat.mar...@kitware.com
           <mailto:pat.mar...@kitware.com>>>> wrote:

                          Actually I didn't write the notes at the
           hpc.mil <http://hpc.mil>
                          <http://hpc.mil> <http://hpc.mil>

                          link.

                          Here is something- and maybe this is the
           problem that
                          Sean refers
                          to- in some cases, when I have set up a
           reverse ssh
                          tunnel from
                          login node to workstation (command executed
           from
                          workstation) then
                          the forward does not work when the compute node
                          connects to the
                          login node. However, if I have the compute node
                          connect to the
                          login node on port 33333, then use portfwd
           to forward
                          that to
                          localhost:11111, where the ssh tunnel is
           listening on
                          port 11111,
                          it works like a charm. The portfwd tricks
           it into
                          thinking the
                          connection is coming from localhost and
           allow the ssh
                          tunnel to
                          work. Hope that made a little sense...

                          Pat


                          On Mon, Feb 8, 2010 at 6:29 PM, burlen
                          <burlen.lor...@gmail.com
           <mailto:burlen.lor...@gmail.com>
           <mailto:burlen.lor...@gmail.com
           <mailto:burlen.lor...@gmail.com>>
                          <mailto:burlen.lor...@gmail.com
           <mailto:burlen.lor...@gmail.com>
                          <mailto:burlen.lor...@gmail.com
           <mailto:burlen.lor...@gmail.com>>>> wrote:

                          Nice, thanks for the clarification. I am
           guessing that
                          your
                          example should probably be the recommended
           approach rather
                          than the portfwd method suggested on the PV
           wiki. :) I
                          took
                          the initiative to add it to the Wiki. KW
           let me know
                          if this
                          is not the case!

                                     
http://paraview.org/Wiki/Reverse_connection_and_port_forwarding#Reverse_connection_over_an_ssh_tunnel



                          Would you mind taking a look to be sure I
           didn't miss
                          anything
                          or bollix it up?

                          The sshd config options you mentioned may
           be why your
                          method
                          doesn't work on the Pleiades system, either
           that or
                          there is a
                          firewall between the front ends and compute
           nodes. In
                          either
                          case I doubt the NAS sys admins are going to
                          reconfigure for
                          me :) So at least for now I'm stuck with
           the two hop ssh
                          tunnels and interactive batch jobs. if
           there were
                          someway to
                          script the ssh tunnel in my batch script I
           would be
                          golden...

                          By the way I put the details of the two hop
           ssh tunnel
                          on the
                          wiki as well, and a link to Pat's hpc.mil
           <http://hpc.mil>
                          <http://hpc.mil> <http://hpc.mil>

                          notes. I don't dare try to summarize them
           since I've never
                          used portfwd and it refuses to compile both
           on my
                          workstation
                          and the cluster.

                          Hopefully putting these notes on the Wiki
           will save future
                          ParaView users some time and headaches.


                          Sean Ziegeler wrote:

                          Not quite- the pvsc calls ssh with both the
           tunnel options
                          and the commands to submit the batch job.
           You don't even
                          need a pvsc; it just makes the interface
           fancier. As long
                          as you or PV executes something like this
           from your
                          machine:
                          ssh -R XXXX:localhost:YYYY remote_machine
           submit_my_job.sh

                          This means that port XXXX on remote_machine
           will be the
                          port to which the server must connect. Port
           YYYY (e.g.,
                          11111) on your client machine is the one on
           which PV
                          listens. You'd have to tell the server (in
           the batch
                          submission script, for example) the name of
           the node and
                          port XXXX to which to connect.

                          One caveat that might be causing you
           problems, port
                          forwarding (and "gateway ports" if the
           server is running
                          on a different node than the login node)
           must be enabled
                          in the remote_machine's sshd_config. If
           not, no ssh
                          tunnels will work at all (see: man ssh and man
                          sshd_config). That's something that an
           administrator
                          would need to set up for you.

                          On 02/08/10 12:26, burlen wrote:

                          So to be sure about what you're saying:
           Your .pvsc
                          script ssh's to the
                          front end and submits a batch job which
           when it's
                          scheduled , your batch
                          script creates a -R style tunnel and starts
           pvserver
                          using PV reverse
                          connection. ? or are you using portfwd or a
           second ssh
                          session to
                          establish the tunnel ?

                          If you're doing this all from your .pvsc script
                          without a second ssh
                          session and/or portfwd that's awesome! I
           haven't been
                          able to script
                          this, something about the batch system
           prevents the
                          tunnel created
                          within the batch job's ssh session from
           working. I
                          don't know if that's
                          particular to this system or a general fact
           of life
                          about batch systems.

                          Question: How are you creating the tunnel
           in your
                          batch script?

                          Sean Ziegeler wrote:

                          Both ways will work for me in most cases,
           i.e. a
                          "forward" connection
                          with ssh -L or a reverse connection with
           ssh -R.

                          However, I find that the reverse method is more
                          scriptable. You can
                          set up a .pvsc file that the client can
           load and
                          will call ssh with
                          the appropriate options and commands for the
                          remote host, all from the
                          GUI. The client will simply wait for the
           reverse
                          connection from the
                          server, whether it takes 5 seconds or 5
           hours for
                          the server to get
                          through the batch queue.

                          Using the forward connection method, if the
           server
                          isn't started soon
                          enough, the client will attempt to connect and
                          then fail. I've always
                          had to log in separately, wait for the
           server to
                          start running, then
                          tell my client to connect.

                          -Sean

                          On 02/06/10 12:58, burlen wrote:

                          Hi Pat,

                          My bad. I was looking at the PV wiki, and
                          thought you were talking about
                          doing this without an ssh tunnel and using
                          only port forward and
                          paraview's --reverse-connection option . Now
                          that I am reading your
                          hpc.mil <http://hpc.mil> <http://hpc.mil>
           <http://hpc.mil> post I see

                          what you
                          mean :)

                          Burlen


                          pat marion wrote:

                          Maybe I'm misunderstanding what you mean
                          by local firewall, but
                          usually as long as you can ssh from your
                          workstation to the login node
                          you can use a reverse ssh tunnel.


                          _______________________________________________
                          Powered by www.kitware.com
           <http://www.kitware.com> <http://www.kitware.com>
                          <http://www.kitware.com>

                          Visit other Kitware open-source projects at
                                     
http://www.kitware.com/opensource/opensource.html

                          Please keep messages on-topic and check the
                          ParaView Wiki at:
                          http://paraview.org/Wiki/ParaView

                          Follow this link to subscribe/unsubscribe:
                                     
http://www.paraview.org/mailman/listinfo/paraview









_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to