when alembic files are opened by a live reader with a handle to that
file and are overwritten by another exporter, the library crashes. is
there a way to determine if a file was changed / overwritten before
pulling on a sample, so that we could re-open the filehandle?
Thanks!
-H
--
You received this message because you are subscribed to the Google
Groups "alembic-discussion" group.
To post to this group, send email to alembic-discussion@googlegroups.com
To unsubscribe from this group, send email to
alembic-discussion+unsub...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/alembic-discussion?hl=en
For RSS or Atom feeds related to Alembic, see:
http://groups.google.com/group/alembic-dev/feeds
http://groups.google.com/group/alembic-discussion/feeds
Hi Helge,
My original response to this question was a small novel of the reasons for it, but I think it's better that I ask why.
Alembic is designed for you to export data to have it basically cached for another process.
What workflow is encouraging you to open two file handles to the same file, which one in read and one in write mode to the same file?
That's a recipe for disaster no matter which way you look at it.
Think about it, in windows, or Linux, or Mac, doing this would present you with a "file already in use" warning when you try and read/write to the file.
The reason it crashes in Alembic is that Alembic is not handling these cases for you, and it's potentially up for debate whether it should.
Personally I think that HDF5 instead should be modified to prevent you from even beginning such dangerous and flawed access patterns, but it does, it assumes that the code using HDF5 will perform this function.
Long story short, why do you feel you need to do this? Because maybe there is another way to do what you are doing that prevents this at the source?
regards,
Luke
On 17 April 2012 20:22, Helge Mathee <helge....@gmx.net> wrote:
Hey folks,
when alembic files are opened by a live reader with a handle to that file and are overwritten by another exporter, the library crashes. is there a way to determine if a file was changed / overwritten before pulling on a sample, so that we could re-open the filehandle?
Thanks!
-H
--
You received this message because you are subscribed to the Google
Groups "alembic-discussion" group.
To post to this group, send email to alembic-d...@googlegroups.com
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/alembic-discussion?hl=en
For RSS or Atom feeds related to Alembic, see:
http://groups.google.com/group/alembic-dev/feeds
http://groups.google.com/group/alembic-discussion/feeds
--
Luke Emrose
aka evolutionary theory
www.evolutionarytheory.com
www.soundcloud.com/evolutionarytheory
www.reverbnation.com/evolutionarytheory
http://www.facebook.com/pages/evolutionary-theory/110717958952413
--
You received this message because you are subscribed to the Google
Groups "alembic-discussion" group.
To post to this group, send email to alembic-d...@googlegroups.com
To unsubscribe from this group, send email to
OK, I'd like to comment on this line:"Then, the animator would export the same file another time and overwrite it."The reason I would HIGHLY discourage this is the following, surprisingly common example.Let's say the director decides that the version the animator overwrote was the gold version, the perfect version, the one that he wants and won't settle for anything else in the world?You just lost it.In a pipeline that supports the changing minds of other people, sometimes it's better to disallow people overwriting files entirely. It's safer, allows more traceability, and prevents exactly the situation you refer.Why would you ever want to overwrite a file coming from another department? Instead you should make a copy of that file and manipulate the copy. Or, more correctly, open the original version in read mode, then write a modification of it out to another file in write mode.Is there a reason you need to overwrite an existing file? I don't think Alembic was designed with such a usage pattern in mind. Indeed most cache formats aren't.L
On 17 April 2012 21:47, Helge Mathee wrote:
Hey Luke,
thanks a lot for your response.
In company pipelines, sometimes a file would be loaded by an artist doing lighting, for example. Then, the animator would export the same file another time and overwrite it. The next time the lighting artist changes the frame, the library crashes. The file will be on a network location accessible by multiple users at the same time.
I am not sure how to deal with this case really.
Thanks for your support!
-H
On 4/17/2012 11:43, Luke Emrose wrote:
Hi Helge,
My original response to this question was a small novel of the reasons for it, but I think it's better that I ask why.
Alembic is designed for you to export data to have it basically cached for another process.
What workflow is encouraging you to open two file handles to the same file, which one in read and one in write mode to the same file?
That's a recipe for disaster no matter which way you look at it.
Think about it, in windows, or Linux, or Mac, doing this would present you with a "file already in use" warning when you try and read/write to the file.
The reason it crashes in Alembic is that Alembic is not handling these cases for you, and it's potentially up for debate whether it should.
Personally I think that HDF5 instead should be modified to prevent you from even beginning such dangerous and flawed access patterns, but it does, it assumes that the code using HDF5 will perform this function.
Long story short, why do you feel you need to do this? Because maybe there is another way to do what you are doing that prevents this at the source?
regards,
Luke
On 17 April 2012 20:22, Helge Mathee wrote:
Hey folks,
when alembic files are opened by a live reader with a handle to that file and are overwritten by another exporter, the library crashes. is there a way to determine if a file was changed / overwritten before pulling on a sample, so that we could re-open the filehandle?
Thanks!
-H
--
You received this message because you are subscribed to the Google
Groups "alembic-discussion" group.
To post to this group, send email to alembic-discussion@googlegroups.com
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/alembic-discussion?hl=en
For RSS or Atom feeds related to Alembic, see:
http://groups.google.com/group/alembic-dev/feeds
http://groups.google.com/group/alembic-discussion/feeds
--
Luke Emrose
aka evolutionary theory
www.evolutionarytheory.com
www.soundcloud.com/evolutionarytheory
www.reverbnation.com/evolutionarytheory
http://www.facebook.com/pages/evolutionary-theory/110717958952413
--
You received this message because you are subscribed to the Google
Groups "alembic-discussion" group.
To post to this group, send email to alembic-discussion@googlegroups.com
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/alembic-discussion?hl=en
For RSS or Atom feeds related to Alembic, see:
http://groups.google.com/group/alembic-dev/feeds
http://groups.google.com/group/alembic-discussion/feeds
Hi Steven,
Then I am confused what you are actually using alembic for.
Can't you just use files from your host application (houdini, xsi etc.) to do your changes and then export once to alembic for a render test?
For in progress work I'd probably recommend against any caching format. Something like Alembic is best used for "setting something in stone" - so that someone along the line can pick up something they can't modify and add their data to it and pass it on. I would really like to know more about how you have placed Alembic in your pipe to fully understand the issue.
As for using a pipeline that always points to latest versions, I can caution against that for other reasons too. If someone staying back late modifies the uvs of an object and publishes to current, then it will break existing renders on your farm.
Updating should always be a choice imo, not something that happens automatically. It makes real problems hard to pin down and introduces the possibility of bugs creeping into every shot in a pipeline simultaneously.
For a very small team it might be workable with tightly coupled people doing the same tasks intimately aware of the risk of making a change, but in the context of a bigger or growing company I've only ever seen that paradigm do damage.
Regards,
L
To post to this group, send email to alembic-d...@googlegroups.com
To unsubscribe from this group, send email to
Copy-on-publish seems to be pretty standard across the larger studios
in the industry for many reasons - and not just for geometry caches.
There's various ways to put locks on files to prevent multiple handles
on a file. Opinions seem to differ on approaches to locking though.
Perhaps that's why it's not included in HDF5 or Alembic?
Cheers
--
=======================================
Andrew D Lyons | Digital Artist | http://www.tstex.com
=======================================
--
You received this message because you are subscribed to the Google
Groups "alembic-discussion" group.
To post to this group, send email to alembic-d...@googlegroups.com
To unsubscribe from this group, send email to
alembic-discuss...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/alembic-discussion?hl=en
For RSS or Atom feeds related to Alembic, see:
http://groups.google.com/group/alembic-dev/feeds
http://groups.google.com/group/alembic-discussion/feeds
Think about it, in windows, or Linux, or Mac, doing this would present you with a "file already in use" warning when you try and read/write to the file.