gcivil-nyu-org / spring2020-cs-gy-9223-class

2 stars 14 forks source link

Support for white space in pathname #574

Closed jackxujh closed 4 years ago

jackxujh commented 4 years ago

The setup script and some other components have been known to not work when there are white spaces present in the project pathname.

Expected Behavior

The software should still work when white space is present in the pathname.

Current Behavior

The following components have been confirmed to break with pathnames with white spaces:

Ideas for Improvement

Use necessary escaping characters to allow white space.

Steps to Reproduce

  1. Check out the project under a path with white spaces.
  2. Run the setup script, or SymmetricDS
  3. The .env file will not be created due to white space.
  4. SymmetricDS will not work due to white space.

Context (Environment)

Known affected environments: macOS 10.15, Ubuntu 18.04

jackxujh commented 4 years ago

@tianrunw this is reopened because the SymmetricDS configuration still needs fixes to support pathnames with spaces.

alldne commented 4 years ago

It seems SymmetricDS doesn't support whitespaces on the path.

Several executables under symmetricds/bin such as bin/sym, bin/symadmin use setenv to set up environment variables.

And in the bin/setenv, it seems $SYM_HOME couldn't include whitespaces.

SYM_OPTIONS="-Dfile.encoding=utf-8 \                                                                                                                                                                                             
-Duser.language=en \                                                                                                                                                                                                             
-Djava.io.tmpdir=$SYM_HOME/tmp \                                                                                                                                                                                                 
-Dorg.eclipse.jetty.server.Request.maxFormContentSize=800000 \                                                                                                                                                                   
-Dorg.eclipse.jetty.server.Request.maxFormKeys=100000 \                                                                                                                                                                          
-Dsym.keystore.file=$SYM_HOME/security/keystore \                                                                                                                                                                                
-Djavax.net.ssl.trustStore=$SYM_HOME/security/cacerts \                                                                                                                                                                          
-Djavax.net.ssl.keyStorePassword=changeit \                                                                                                                                                                                      
-Dlog4j.configuration=file:$SYM_HOME/conf/log4j.xml \                                                                                                                                                                            
-Djava.util.logging.config.file=conf/logging.properties \                                                                                                                                                                        
-Dsun.net.client.defaultReadTimeout=300000 \                                                                                                                                                                                     
-Dsun.net.client.defaultConnectTimeout=300000 \                                                                                                                                                                                  
-Djava.net.preferIPv4Stack=true \                                                                                                                                                                                                
-Dcom.ibm.as400.access.AS400.guiAvailable=false \                                                                                                                                                                                
-Dsymmetric.ssl.ignore.ciphers=TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3
DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA \                                                                                                                                                                              
-XX:+HeapDumpOnOutOfMemoryError \                                                                                                                                                                                                
-XX:HeapDumpPath=$SYM_HOME/tmp"                                                                                                                                                                                                  
export SYM_OPTIONS                                                                                                                                                                                                               

Unless we modify the part of SymmetricDS to make it support whitespaces, we cannot fully support whitespaces in the path.

alldne commented 4 years ago

After discussion, we won't support whitespaces in the path as SymmetricDS doesn't support it. There are still ongoing/resolved discussions out there on SymmetricDS and whitespaces though. However we couldn't find a working solution.

I'm going to mention in the docs that this project doesn't support whitespaces in the path.