You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2016/08/17 16:52:20 UTC

[jira] [Resolved] (PHOENIX-3191) COUNT and other aggregate functions not working

     [ https://issues.apache.org/jira/browse/PHOENIX-3191?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Taylor resolved PHOENIX-3191.
-----------------------------------
    Resolution: Invalid

This is clearly an environmental issue. Would you mind asking on the dev or user list and include the Phoenix version you're using? I recommend you check your setting for the {{phoenix.spool.directory}} config property on the server-side which in later versions defaults to {{System.getProperty("java.io.tmpdir")}} through in earlier versions defaulted to /tmp (which won't be valid in some environments). Try setting it to something you know is valid.

> COUNT and other aggregate functions not working
> -----------------------------------------------
>
>                 Key: PHOENIX-3191
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3191
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.6.0
>         Environment: CentOS(Server), Windows(Client)
>            Reporter: Vivek K T
>            Priority: Critical
>
> Following are steps to reproduce the issue : 
> 1) Create a dummy table BUDGET : 
> create table BUDGET
> (
>   id varchar (50) primary key,
>   date timestamp,
>   amount decimal,
>   currency varchar (50)
> )
> 2) Insert data in BUDGET table : 
> upsert into BUDGET (id,date,amount,currency) values ('1',current_date(),20,'INR');
> upsert into BUDGET (id,date,amount,currency) values ('2',current_date(),40,'INR');
> upsert into BUDGET (id,date,amount,currency) values ('3',current_date(),60,'INR');
> upsert into BUDGET (id,date,amount,currency) values ('4',current_date(),80,'INR');
> upsert into BUDGET (id,date,amount,currency) values ('5',current_date(),100,'INR');
> (PLEASE NOTE : TABLE CREATION AND DATA INSERTION SHOULD BE DONE FROM LINUX SERVER)
> 3) Fire following query from squirrel-sql on windows: 
> select count(*) from BUDGET
> Note : Same error for other aggregate functions like sum,min,max etc. 
> -> ERROR TRACE AS FOLLOW :
> [2016-08-17 21:32:45.925 IST] ERROR [] [] [] [] [] [] [] [] [] Thread-12 net.sourceforge.squirrel_sql.client.session.SQLExecuterTask [126] - Error reading ResultSet for SQL: select count(*) from BUDGET
> org.apache.phoenix.exception.PhoenixIOException: org.apache.phoenix.exception.PhoenixIOException: The system cannot find the path specified
> 	at org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:108)
> 	at org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:558)
> 	at org.apache.phoenix.iterate.ConcatResultIterator.getIterators(ConcatResultIterator.java:50)
> 	at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:97)
> 	at org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
> 	at org.apache.phoenix.iterate.BaseGroupedAggregatingResultIterator.next(BaseGroupedAggregatingResultIterator.java:64)
> 	at org.apache.phoenix.iterate.UngroupedAggregatingResultIterator.next(UngroupedAggregatingResultIterator.java:39)
> 	at org.apache.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:771)
> 	at net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetWrapper._nextOnResultSet(ResultSetWrapper.java:95)
> 	at net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetWrapper.next(ResultSetWrapper.java:56)
> 	at net.sourceforge.squirrel_sql.fw.sql.ResultSetReader.readRow(ResultSetReader.java:182)
> 	at net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet.createRow(ResultSetDataSet.java:238)
> 	at net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet._setResultSet(ResultSetDataSet.java:204)
> 	at net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet.setSqlExecutionTabResultSet(ResultSetDataSet.java:127)
> 	at net.sourceforge.squirrel_sql.client.session.mainpanel.SQLExecutionHandler.sqlResultSetAvailable(SQLExecutionHandler.java:423)
> 	at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.processResultSet(SQLExecuterTask.java:549)
> 	at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.processQuery(SQLExecuterTask.java:414)
> 	at net.sourceforge.squirrel_sql.client.session.SQLExecuterTask.run(SQLExecuterTask.java:212)
> 	at net.sourceforge.squirrel_sql.fw.util.TaskExecuter.run(TaskExecuter.java:82)
> 	at java.lang.Thread.run(Thread.java:744)
> Caused by: java.util.concurrent.ExecutionException: org.apache.phoenix.exception.PhoenixIOException: The system cannot find the path specified
> 	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> 	at java.util.concurrent.FutureTask.get(FutureTask.java:202)
> 	at org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:554)
> 	... 18 more
> Caused by: org.apache.phoenix.exception.PhoenixIOException: The system cannot find the path specified
> 	at org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:108)
> 	at org.apache.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:151)
> 	at org.apache.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:86)
> 	at org.apache.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:64)
> 	at org.apache.phoenix.iterate.SpoolingResultIterator$SpoolingResultIteratorFactory.newIterator(SpoolingResultIterator.java:81)
> 	at org.apache.phoenix.iterate.ParallelIterators$1.call(ParallelIterators.java:109)
> 	at org.apache.phoenix.iterate.ParallelIterators$1.call(ParallelIterators.java:100)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 	at org.apache.phoenix.job.JobManager$InstrumentedJobFutureTask.run(JobManager.java:183)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	... 1 more
> Caused by: java.io.IOException: The system cannot find the path specified
> 	at java.io.WinNTFileSystem.createFileExclusively(Native Method)
> 	at java.io.File.createNewFile(File.java:1006)
> 	at java.io.File.createTempFile(File.java:1989)
> 	at org.apache.commons.io.output.DeferredFileOutputStream.thresholdReached(DeferredFileOutputStream.java:176)
> 	at org.apache.phoenix.iterate.SpoolingResultIterator$1.thresholdReached(SpoolingResultIterator.java:118)
> 	at org.apache.commons.io.output.ThresholdingOutputStream.checkThreshold(ThresholdingOutputStream.java:224)
> 	at org.apache.commons.io.output.ThresholdingOutputStream.write(ThresholdingOutputStream.java:92)
> 	at java.io.DataOutputStream.writeByte(DataOutputStream.java:153)
> 	at org.apache.hadoop.io.WritableUtils.writeVLong(WritableUtils.java:273)
> 	at org.apache.hadoop.io.WritableUtils.writeVInt(WritableUtils.java:253)
> 	at org.apache.phoenix.util.TupleUtil.write(TupleUtil.java:149)
> 	at org.apache.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:129)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)