> I think we want/need relative paths, e.g. "build/tmp", and if the path is in 
> a mounted volume there can be another container still running.
Sure. The specifics of *what* path isn't interesting to me.

The pattern of:
1. Let env declare where TEMP lives
2. Write things to TEMP
3. Delete things from TEMP every time we run a new suite or do "ant clean"

Is.

Could also take it a step further and let env declare RESULTS_PATH for things 
they want to be durable and add an "ant clean-results" target.

On Sun, Aug 13, 2023, at 11:33 AM, Derek Chen-Becker wrote:
> Nevermind, I found "tmp.dir"
> 
> On Sun, Aug 13, 2023 at 9:29 AM Derek Chen-Becker <de...@chen-becker.org> 
> wrote:
>> Cool,
>> 
>> I'm a little confused. Is "tmp.dir" a custom Java property that we expose? I 
>> thought that the standard "property was "java.io.tmpdir". Let me take a stab 
>> at setting tmp.dir to build/tmp and see if I run into any issues (or still 
>> see any files in /tmp).
>> 
>> Cheers,
>> 
>> Derek
>> 
>> On Sun, Aug 13, 2023 at 8:24 AM Mick Semb Wever <m...@apache.org> wrote:
>>> 
>>>> While doing some local testing, I noticed that my /tmp drive completely 
>>>> filled with test artifact files (e.g. data directories, logs, commit logs, 
>>>> etc). Mick pointed out that we do attempt to do some "find" based cleanup 
>>>> in CI 
>>>> (https://github.com/apache/cassandra-builds/blob/trunk/jenkins-dsl/cassandra_job_dsl_seed.groovy#L437-439),
>>>>  but I was wondering if it might be better to do the following for direct 
>>>> ant builds:
>>>> 
>>>> 1. If TMPDIR is set, use it. It does not appear to be honored, currently, 
>>>> so I need to do some analysis of what would need to be done here
>>>> 2. If TMPDIR is not set, use "mktemp" to create a temp directory and set 
>>>> TMPDIR with that directory
>>>> 3. Update the "ant clean" task to delete TMPDIR when we've generated it, 
>>>> or attempt the find-based cleanup if TMPDIR was provided
>>>> 
>>>> Does anyone know if there are any hard-coded assumptions that test files 
>>>> will live directly under /tmp?
>>> 
>>> 
>>> This will need testing with in-tree scripts, ci-cassandra, and circleci  :(
>>>  
>>> What comes to mind:
>>>  - TMPDIR works best today with the python and scripting stuff
>>>  - setting TMPDIR can break tests, hence unit test script set instead 
>>> $TMP_DIR which is passed to `-Dtmp.dir=…`
>>>  - /tmp is often set up to be a more appropropriate fs (and volume size)
>>>  - it is hard to customise everything
>>>  - it needs to work locally on your machine as well as in docker 
>>> containers, as well as CI
>>> 
>>> If we want something that is wiped by `ant clean` I would suggest using the 
>>> build/tmp directory by default.
>>> In-tree scripts do this for unit tests: 
>>> https://github.com/apache/cassandra/blob/trunk/.build/run-tests.sh#L160
>>>  but are not yet doing it for the dtests: 
>>> https://github.com/apache/cassandra/blob/trunk/.build/run-python-dtests.sh#L58
>>>  
>>> 
>>> So I don't think we need (3). If the caller has specified TMPDIR it is then 
>>> their responsibility to clean it.
>>> 
>>> We can probably avoid trying to set TMPDIR, instead defaulting the 
>>> `tmp.dir` property to  the build/tmp directory.
>>> 
>>> The goal of any changes in build.xml should be, in addition to providing 
>>> the best dev exp, to simplify the testing and CI layers above it.
>>> 
>> 
>> 
>> --
>> +---------------------------------------------------------------+
>> | Derek Chen-Becker                                             |
>> | GPG Key available at https://keybase.io/dchenbecker and       |
>> | https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
>> | Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
>> +---------------------------------------------------------------+
>> 
> 
> 
> --
> +---------------------------------------------------------------+
> | Derek Chen-Becker                                             |
> | GPG Key available at https://keybase.io/dchenbecker and       |
> | https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
> | Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
> +---------------------------------------------------------------+
> 

Reply via email to