After creating a CsvFileWriter and writing data to file there is no documented way to close the writer, resulting in a file descriptor leak. I've managed to close it by using writer.writeStream.end().
Example:
writer = csv.createCsvFileWriter('file.csv', {'flags': 'a'});
var csvData = new Array();
csvData.push(id);
csvData.push(name);
writer.writeRecord(csvData);
writer.writeStream.end(); // this is how to close the file descriptor