br1ghtyang / asterixdb

Automatically exported from code.google.com/p/asterixdb
0 stars 0 forks source link

[ Severity-BetaBlocker ] Cannot DROP AQL Bodied Function #489

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
1. Create asterix instance using managix, one CC and two logical NC's, and 

2. run these statements from Web UI.

drop dataverse test if exists;
create dataverse test;
use dataverse test;

create function f1()
{
"function with no input"
}

create function f1($a)
{
"function with input"
}

f1();
f1(100);

Results :

"function with no input"
"function with input"

3. After you see the results, click on the Execute button once again (without 
making any changes to AQL script, in textbox.) You will see the following 
Exception on Web UI

edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException: 
edu.uci.ics.asterix.metadata.MetadataException: 
edu.uci.ics.asterix.metadata.MetadataException: Cannot drop function 
'test.f1@1' because it doesn't exist.

Here is the stack trace from CC.log

SEVERE: edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException: 
edu.uci.ics.asterix.metadata.MetadataException: 
edu.uci.ics.asterix.metadata.MetadataException: Cannot drop function 
'test.f1@1' because it doesn't exist.
edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException: 
edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException: 
edu.uci.ics.asterix.metadata.MetadataException: 
edu.uci.ics.asterix.metadata.MetadataException: Cannot drop function 
'test.f1@1' because it doesn't exist.
        at edu.uci.ics.asterix.aql.translator.AqlTranslator.compileAndExecute(AqlTranslator.java:294)
        at edu.uci.ics.asterix.api.http.servlet.APIServlet.doPost(APIServlet.java:78)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:546)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:970)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:411)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:904)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
        at org.eclipse.jetty.server.Server.handle(Server.java:347)
        at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:439)
        at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:924)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:781)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:43)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
        at java.lang.Thread.run(Thread.java:722)
Caused by: 
edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException: 
edu.uci.ics.asterix.metadata.MetadataException: 
edu.uci.ics.asterix.metadata.MetadataException: Cannot drop function 
'test.f1@1' because it doesn't exist.
        at edu.uci.ics.asterix.aql.translator.AqlTranslator.handleDataverseDropStatement(AqlTranslator.java:820)
        at edu.uci.ics.asterix.aql.translator.AqlTranslator.compileAndExecute(AqlTranslator.java:220)
        ... 22 more
Caused by: edu.uci.ics.asterix.metadata.MetadataException: 
edu.uci.ics.asterix.metadata.MetadataException: Cannot drop function 
'test.f1@1' because it doesn't exist.
        at edu.uci.ics.asterix.metadata.MetadataNode.dropDataverse(MetadataNode.java:353)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
        at sun.rmi.transport.Transport$1.run(Transport.java:177)
        at sun.rmi.transport.Transport$1.run(Transport.java:174)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
        at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273)
        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:160)
        at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194)
        at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148)
        at com.sun.proxy.$Proxy13.dropDataverse(Unknown Source)
        at edu.uci.ics.asterix.metadata.MetadataManager.dropDataverse(MetadataManager.java:156)
        at edu.uci.ics.asterix.aql.translator.AqlTranslator.handleDataverseDropStatement(AqlTranslator.java:763)
        ... 23 more
Caused by: edu.uci.ics.asterix.metadata.MetadataException: Cannot drop function 
'test.f1@1' because it doesn't exist.
        at edu.uci.ics.asterix.metadata.MetadataNode.dropFunction(MetadataNode.java:820)
        at edu.uci.ics.asterix.metadata.MetadataNode.dropDataverse(MetadataNode.java:327)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
        at sun.rmi.transport.Transport$1.run(Transport.java:177)
        at sun.rmi.transport.Transport$1.run(Transport.java:174)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        ... 1 more

Here are details of configuration from managix

kfmohamm@khurram:~/asterix-managix/bin$ ./managix describe -admin
INFO: Name:astx01
Created:Thu May 30 18:13:04 PDT 2013
Web-Url:http://127.0.0.1:19001
State:ACTIVE
Master node:master:127.0.0.1
node1:127.0.0.1
node2:127.0.0.1

Asterix version:0.0.6-SNAPSHOT
Metadata Node:node1
Processes
NC at node1 [ 12331 ]
NC at node2 [ 12330 ]
CC at master [ 11970 ]

Asterix Configuration
nc.java.opts:-Xmx1024m
cc.java.opts:-Xmx1024m
storage.buffercache.pagesize:32768
storage.buffercache.numpages:1024
storage.buffercache.maxopenfiles:214748364
storage.memorycomponent.pagesize:32768
storage.memorycomponent.numpages:4096
storage.memorycomponent.globalbudget:1073741824
storage.lsm.mergethreshold:3
storage.lsm.bloomfilter.falsepositiverate:0.01
txn.log.buffer.numpages:8
txn.log.buffer.pagesize:131072
txn.log.partitionsize:2147483648
txn.log.groupcommitinterval:200
txn.log.checkpoint.lsnthreshold:67108864
txn.log.checkpoint.pollfrequency:120
txn.lock.escalationthreshold:1000
txn.lock.shrinktimer:120000
compiler.sortmemory:536870912
compiler.joinmemory:536870912
compiler.framesize:32768
web.port:19001
api.port:19101
log.level:INFO

Original issue reported on code.google.com by khfaraaz82 on 31 May 2013 at 1:24

GoogleCodeExporter commented 8 years ago
A select query over Metadata.Function shows those two functions are registered 
in Metadata.Function dataset.

for $l in dataset Metadata.Function
return $l

{ "DataverseName": "test", "Name": "f1", "Arity": "0", "Params": [  ], 
"ReturnType": "VOID", "Definition": "\"function with no input\"", "Language": 
"AQL", "Kind": "SCALAR" }
{ "DataverseName": "test", "Name": "f1", "Arity": "1", "Params": [ "$a" ], 
"ReturnType": "VOID", "Definition": "\"function with input\"", "Language": 
"AQL", "Kind": "SCALAR" }

Original comment by khfaraaz82 on 31 May 2013 at 1:30

GoogleCodeExporter commented 8 years ago

Original comment by zheilb...@gmail.com on 31 May 2013 at 7:28

GoogleCodeExporter commented 8 years ago
fixed in branch raman/master_issue_489, review request sent to Pouria

Original comment by RamanGro...@gmail.com on 31 May 2013 at 10:28

GoogleCodeExporter commented 8 years ago
merged into master

Original comment by RamanGro...@gmail.com on 4 Jun 2013 at 5:56

GoogleCodeExporter commented 8 years ago

Original comment by khfaraaz82 on 4 Jun 2013 at 7:38