lhotari opened a new issue #12645:
URL: https://github.com/apache/pulsar/issues/12645


   **Describe the bug**
   
   The fix made in #11343 to fix #11340/#11379 concurrency issues in 
NarUnpacker doesn't work when /tmp is a mounted volume (in a container). This 
is due to the fact that docker volumes don't support file locking across 
containers.
   
   **To Reproduce**
   
   Similar steps as there are for #11340/#11379 with the difference that 
/tmp/pulsar-nar is a mounted directory. 
   
   **Expected behavior**
   
   It should be possible to configure Pulsar Functions to use another file 
locking solution that doesn't require operating system level file locking 
functionality. Alternatively it should be possible to configure the function 
instance to use a unique directory for the function instance instead of using 
the shared /tmp/pulsar-nar directory.
   The extraction directory cannot be unique for each extraction since that 
would cause the disk space usage to grow when functions get started/restarted. 
   
   **Error message**
   
   ```
   ERROR org.apache.pulsar.common.nar.NarUnpacker - There was a problem 
extracting the nar file. Deleting 
/tmp/pulsar-nar/functions.jar-unpacked/Zii1vei7Ohhaishu_Bohc6kaesaechoofeishaiN8
 to clean up state.
   java.io.FileNotFoundException: 
/tmp/pulsar-nar/functions.jar-unpacked/Zii1vei7Ohhaishu_Bohc6kaesaechoofeishaiN8/META-INF/MANIFEST.MF
 (No such file or directory)
       at java.io.FileOutputStream.open0(Native Method) ~[?:?]
       at java.io.FileOutputStream.open(FileOutputStream.java:298) ~[?:?]
       at java.io.FileOutputStream.<init>(FileOutputStream.java:237) ~[?:?]
       at java.io.FileOutputStream.<init>(FileOutputStream.java:187) ~[?:?]
       at 
org.apache.pulsar.common.nar.NarUnpacker.makeFile(NarUnpacker.java:144) 
~[java-instance.jar:?]
       at org.apache.pulsar.common.nar.NarUnpacker.unpack(NarUnpacker.java:127) 
~[java-instance.jar:?]
       at 
org.apache.pulsar.common.nar.NarUnpacker.doUnpackNar(NarUnpacker.java:96) 
~[java-instance.jar:?]
       at 
org.apache.pulsar.common.nar.NarUnpacker.unpackNar(NarUnpacker.java:65) 
~[java-instance.jar:?]
       at 
org.apache.pulsar.common.nar.NarClassLoader.getFromArchive(NarClassLoader.java:153)
 ~[java-instance.jar:?]
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to