Mark S created PHOENIX-2850: ------------------------------- Summary: Out of disk space due to *.tmp files Key: PHOENIX-2850 URL: https://issues.apache.org/jira/browse/PHOENIX-2850 Project: Phoenix Issue Type: Bug Affects Versions: 4.4.0 Environment: Windows host that is connecting (Via a Wildfly JEE server) to a Hortanworks Apache Phoenix Cluster (HDP 2.4). Reporter: Mark S Priority: Blocker
So I did some debugging and found the code responsible for these *.tmp files being created ({{File.createTempFile(UUID.randomUUID().toString(), null)}}). Unfortunately, have no idea as to why these files are not removed. h4. Source https://github.com/hortonworks/phoenix-release/blob/HDP-2.4.0.0-tag/phoenix-core/src/main/java/org/apache/phoenix/iterate/MappedByteBufferQueue.java#L304 {code:java|title=org.apache.phoenix.iterate.MappedByteBufferQueue$MappedByteBufferSegmentQueue} private void flush(T entry) throws IOException { Queue<T> inMemQueue = getInMemoryQueue(); int resultSize = sizeOf(entry); maxResultSize = Math.max(maxResultSize, resultSize); totalResultSize = hasMaxQueueSize ? maxResultSize * inMemQueue.size() : (totalResultSize + resultSize); if (totalResultSize >= thresholdBytes) { this.file = File.createTempFile(UUID.randomUUID().toString(), null); RandomAccessFile af = new RandomAccessFile(file, "rw"); FileChannel fc = af.getChannel(); int writeIndex = 0; mappingSize = Math.min(Math.max(maxResultSize, DEFAULT_MAPPING_SIZE), totalResultSize); MappedByteBuffer writeBuffer = fc.map(MapMode.READ_WRITE, writeIndex, mappingSize); {code} h4. Example file names (C:\Users\username\AppData\Local\Temp): 7a0967de-9dff-432b-bcfe-de30bc630add5176202498513378657.tmp 813e40e1-afa9-4847-919c-7c55f95f8a475501154042645376476.tmp 1329da43-561d-4e68-9120-56bd650a6ac98781585316402092121.tmp h4. My SQL Query {code:sql} String sql = "SELECT TR.ID" + " ,TR.CLIENT_ID" + " ,TR.BRAND_ID" + " ,TR.SITE_ID" + " ,TR.EMAIL" + " ,COUNT(TS2.ID) + MAX(TR.repeatBrandShortVisit) AS repeatBrandShortVisit" + " ,SUM(CASE WHEN TS2.SESSION_TYPE = 1 THEN 1 ELSE 0 END) + MAX(TR.repeatBrandLongVisit) AS repeatBrandLongVisit" + " ,SUM(CASE WHEN TS2.SITE_ID = TR.SITE_ID THEN 1 ELSE 0 END) + MAX(TR.repeatSiteShortVisit) AS repeatSiteShortVisit" + " ,SUM(CASE WHEN TS2.SITE_ID = TR.SITE_ID AND TS2.SESSION_TYPE = 1 THEN 1 ELSE 0 END) + MAX(TR.repeatSiteLongVisit) AS repeatSiteLongVisit" + " FROM (" + " SELECT TSE.ID" + " ,TSE.CLIENT_ID" + " ,TSE.BRAND_ID" + " ,TSE.SITE_ID" + " ,TSE.EMAIL" + " ,COUNT(TS1.ID) AS repeatBrandShortVisit" + " ,SUM(CASE WHEN TS1.SESSION_TYPE = 1 THEN 1 ELSE 0 END) AS repeatBrandLongVisit" + " ,SUM(CASE WHEN TS1.SITE_ID = TSE.SITE_ID THEN 1 ELSE 0 END) AS repeatSiteShortVisit" + " ,SUM(CASE WHEN TS1.SITE_ID = TSE.SITE_ID AND TS1.SESSION_TYPE = 1 THEN 1 ELSE 0 END) AS repeatSiteLongVisit" + " FROM (" + " SELECT ID" + " ,CLIENT_ID" + " ,BRAND_ID" + " ,SITE_ID" + " ,EMAIL" + " FROM user.SESSION_EXPIRATION " + " WHERE NEXT_CHECK <= CURRENT_TIME()" + " LIMIT " + batchSize + " ) AS TSE" + " LEFT OUTER JOIN user.SESSION TS1" + " ON TS1.CLIENT_ID = TSE.CLIENT_ID" + " AND TS1.BRAND_ID = TSE.BRAND_ID" + " GROUP BY TSE.ID" + " ,TSE.CLIENT_ID" + " ,TSE.BRAND_ID" + " ,TSE.SITE_ID" + " ,TSE.EMAIL" + " ) AS TR" + " LEFT OUTER JOIN user.SESSION TS2" + " ON TS2.EMAIL = TR.EMAIL" + " AND TS2.BRAND_ID = TR.BRAND_ID" + " GROUP BY TR.ID" + " ,TR.CLIENT_ID" + " ,TR.BRAND_ID" + " ,TR.SITE_ID" + " ,TR.EMAIL"; {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)