Hi,

It seems threads which are opened for data loading is not stopped that is
why your main program is not terminated upon completion of data loading.
There is no functionality issue here you can still query the data. I will
look into it why the threads are not terminated upon completion.

Regards,
Ravindra
On Thu, 4 May 2017 at 9:29 AM, xm_zzc <441586...@qq.com> wrote:

> Hi all:
>   I used spark to read a parquet file and than save it as carbondata file,
> but I found that *my program didn't stop* after loading data successfully,
> I
> saw log output as following:
>
>   *main -[MyUbuntu-64][myubuntu][Thread-1]Total time taken to write
> dictionary file is: 40728
>   main -[MyUbuntu-64][myubuntu][Thread-1]Data load is successful for
> default.parquet_to_carbondata2
>   main -main compaction need status is false
>   main -main Successfully deleted the lock file
> /data/carbon_data/default/parquet_to_carbondata2/meta.lock*
>
>   According to the log above, I think that the data load was successful,
> but
> why the programe hanged?
>
>   My program is :
>
>     /val warehouseLocation = Constants.SPARK_WAREHOUSE
>     val storeLocation = Constants.CARBON_FILES
>
>     CarbonProperties.getInstance()
>       .addProperty(CarbonCommonConstants.CARBON_TIMESTAMP_FORMAT,
> "yyyy-MM-dd HH:mm:ss")
>       .addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT, "yyyy-MM-dd")
>
>     import org.apache.spark.sql.CarbonSession._
>     val spark = SparkSession
>       .builder()
>       .appName("TestCarbonData")
>       .master("local[2]")
>       .config("spark.sql.warehouse.dir", warehouseLocation)
>       .getOrCreateCarbonSession(storeLocation, Constants.METASTORE_DB)
>
>     spark.conf.set("spark.sql.parquet.binaryAsString", true)
>     val testParquet2 = spark.read.parquet("file:///data/cbd_test.parquet")
>
>     spark.sql("""DROP TABLE IF EXISTS parquet_to_carbondata2""")
>
>     testParquet2.show()
>     testParquet2.printSchema()
>     println("testParquet2: " + testParquet2.count())
>
>     testParquet2.write
>       .format("carbondata")
>       .option("tableName", "parquet_to_carbondata2")
>       .option("tempCSV", "false")
>       .option("compress", "true")
>       .option("single_pass", "true")
>       .option("partitionCount", "2")
>       .option("table_blocksize", "8")
>       .option("dictionary_exclude", "ftype,chan")
>       .mode(SaveMode.Overwrite)
>       .save()
>
>     spark.stop()/
>
>     *I use command 'jstack' to trace this program, the messages are as
> following:*
>
>    "Attach Listener" #438 daemon prio=9 os_prio=0 tid=0x00007f91e80a3800
> nid=0x1c44 waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "DestroyJavaVM" #435 prio=5 os_prio=0 tid=0x00007f9240015000 nid=0x191e
> waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "nioEventLoopGroup-11-1" #96 prio=10 os_prio=0 tid=0x00007f920009d000
> nid=0x19a3 runnable [0x00007f9160df9000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
>         at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
>         at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
>         at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
>         - locked <0x000000067a853b30> (a
> io.netty.channel.nio.SelectedSelectionKeySet)
>         - locked <0x000000065fa85800> (a
> java.util.Collections$UnmodifiableSet)
>         - locked <0x00000006602e3ab8> (a sun.nio.ch.EPollSelectorImpl)
>         at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
>         at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:746)
>         at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:391)
>         at
>
> io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
>         at
>
> io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
>         at java.lang.Thread.run(Thread.java:745)
>
>    Locked ownable synchronizers:
>         - None
>
> "threadDeathWatcher-9-1" #91 daemon prio=1 os_prio=0 tid=0x00007f919c0d4000
> nid=0x199e sleeping[0x00007f9168389000]
>    java.lang.Thread.State: TIMED_WAITING (sleeping)
>         at java.lang.Thread.sleep(Native Method)
>         at
> io.netty.util.ThreadDeathWatcher$Watcher.run(ThreadDeathWatcher.java:152)
>         at
>
> io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
>         at java.lang.Thread.run(Thread.java:745)
>
>    Locked ownable synchronizers:
>         - None
>
> "ForkJoinPool-2-worker-11" #65 daemon prio=5 os_prio=0
> tid=0x00007f919c001800 nid=0x1979 waiting on condition [0x00007f916b3ef000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x000000067aa126b8> (a
> scala.concurrent.forkjoin.ForkJoinPool)
>         at
> scala.concurrent.forkjoin.ForkJoinPool.scan(ForkJoinPool.java:2075)
>         at
> scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
>         at
>
> scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
>
>    Locked ownable synchronizers:
>         - None
>
> "BoneCP-pool-watch-thread" #54 daemon prio=5 os_prio=0
> tid=0x00007f92427d2800 nid=0x1966 waiting on condition [0x00007f91bc738000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x000000065fa82cf8> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at
> java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
>         at
>
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
>         at
> java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403)
>         at com.jolbox.bonecp.PoolWatchThread.run(PoolWatchThread.java:75)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:745)
>
>    Locked ownable synchronizers:
>         - <0x000000067a87f9d0> (a
> java.util.concurrent.ThreadPoolExecutor$Worker)
>
> "BoneCP-keep-alive-scheduler" #53 daemon prio=5 os_prio=0
> tid=0x00007f92427a8800 nid=0x1965 waiting on condition [0x00007f91bc839000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x000000067ac1da68> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
>         at
>
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
>         at
>
> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
>         at
>
> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:745)
>
>    Locked ownable synchronizers:
>         - None
>
> "com.google.common.base.internal.Finalizer" #52 daemon prio=5 os_prio=0
> tid=0x00007f92427a7000 nid=0x1964 in Object.wait() [0x00007f91bc93a000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x000000065fa82ce0> (a
> java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
>         - locked <0x000000065fa82ce0> (a java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
>         at
> com.google.common.base.internal.Finalizer.run(Finalizer.java:127)
>
>    Locked ownable synchronizers:
>         - None
>
> "BoneCP-pool-watch-thread" #51 daemon prio=5 os_prio=0
> tid=0x00007f9242518800 nid=0x1963 waiting on condition [0x00007f91bcc3b000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x000000065f801780> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at
> java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
>         at
>
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
>         at
> java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403)
>         at com.jolbox.bonecp.PoolWatchThread.run(PoolWatchThread.java:75)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:745)
>
>    Locked ownable synchronizers:
>         - <0x000000066020ed18> (a
> java.util.concurrent.ThreadPoolExecutor$Worker)
>
> "BoneCP-keep-alive-scheduler" #50 daemon prio=5 os_prio=0
> tid=0x00007f924251b800 nid=0x1962 waiting on condition [0x00007f91bcd3c000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x000000065f7973b0> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
>         at
>
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
>         at
>
> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
>         at
>
> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:745)
>
>    Locked ownable synchronizers:
>         - None
>
> "com.google.common.base.internal.Finalizer" #49 daemon prio=5 os_prio=0
> tid=0x00007f92410bd000 nid=0x1961 in Object.wait() [0x00007f91bce3d000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x000000065f8017b0> (a
> java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
>         - locked <0x000000065f8017b0> (a java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
>         at
> com.google.common.base.internal.Finalizer.run(Finalizer.java:127)
>
>    Locked ownable synchronizers:
>         - None
>
> "derby.rawStoreDaemon" #48 daemon prio=5 os_prio=0 tid=0x00007f9242331800
> nid=0x1960 in Object.wait() [0x00007f91bd13e000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at org.apache.derby.impl.services.daemon.BasicDaemon.rest(Unknown
> Source)
>         - locked <0x000000066043f498> (a
> org.apache.derby.impl.services.daemon.BasicDaemon)
>         at org.apache.derby.impl.services.daemon.BasicDaemon.run(Unknown
> Source)
>         at java.lang.Thread.run(Thread.java:745)
>
>    Locked ownable synchronizers:
>         - None
>
> "Timer-1" #47 daemon prio=5 os_prio=0 tid=0x00007f9242314800 nid=0x195f in
> Object.wait() [0x00007f91bd43f000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x000000065f768008> (a java.util.TaskQueue)
>         at java.lang.Object.wait(Object.java:502)
>         at java.util.TimerThread.mainLoop(Timer.java:526)
>         - locked <0x000000065f768008> (a java.util.TaskQueue)
>         at java.util.TimerThread.run(Timer.java:505)
>
>    Locked ownable synchronizers:
>         - None
>
> "Service Thread" #9 daemon prio=9 os_prio=0 tid=0x00007f9240161000
> nid=0x1934 runnable [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "C1 CompilerThread2" #8 daemon prio=9 os_prio=0 tid=0x00007f9240144000
> nid=0x1933 waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "C2 CompilerThread1" #7 daemon prio=9 os_prio=0 tid=0x00007f9240141800
> nid=0x1932 waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "C2 CompilerThread0" #6 daemon prio=9 os_prio=0 tid=0x00007f924013f800
> nid=0x1931 waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "Signal Dispatcher" #5 daemon prio=9 os_prio=0 tid=0x00007f924013d800
> nid=0x1930 runnable [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "Surrogate Locker Thread (Concurrent GC)" #4 daemon prio=9 os_prio=0
> tid=0x00007f924013c000 nid=0x192f waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f9240104800 nid=0x192e in
> Object.wait() [0x00007f9219424000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
>         - locked <0x000000065f3ff8d0> (a java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
>         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
>
>    Locked ownable synchronizers:
>         - None
>
> "Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007f9240102000
> nid=0x192d in Object.wait() [0x00007f9219525000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.lang.Object.wait(Object.java:502)
>         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
>         - locked <0x000000065f3d4538> (a java.lang.ref.Reference$Lock)
>
>    Locked ownable synchronizers:
>         - None
>
> "VM Thread" os_prio=0 tid=0x00007f92400fd000 nid=0x192c runnable
>
> "Gang worker#0 (Parallel GC Threads)" os_prio=0 tid=0x00007f9240026800
> nid=0x191f runnable
>
> "Gang worker#1 (Parallel GC Threads)" os_prio=0 tid=0x00007f9240028000
> nid=0x1920 runnable
>
> "Gang worker#2 (Parallel GC Threads)" os_prio=0 tid=0x00007f924002a000
> nid=0x1921 runnable
>
> "Gang worker#3 (Parallel GC Threads)" os_prio=0 tid=0x00007f924002b800
> nid=0x1922 runnable
>
> "Gang worker#4 (Parallel GC Threads)" os_prio=0 tid=0x00007f924002d800
> nid=0x1923 runnable
>
> "Gang worker#5 (Parallel GC Threads)" os_prio=0 tid=0x00007f924002f000
> nid=0x1924 runnable
>
> "Concurrent Mark-Sweep GC Thread" os_prio=0 tid=0x00007f924008b000
> nid=0x1927 runnable
>
> "Gang worker#0 (Parallel CMS Threads)" os_prio=0 tid=0x00007f9240087000
> nid=0x1925 runnable
>
> "Gang worker#1 (Parallel CMS Threads)" os_prio=0 tid=0x00007f9240088800
> nid=0x1926 runnable
>
> "VM Periodic Task Thread" os_prio=0 tid=0x00007f9240164800 nid=0x1935
> waiting on condition
>
> JNI global references: 341
>
>
>
> --
> View this message in context:
> http://apache-carbondata-mailing-list-archive.1130556.n5.nabble.com/Program-didn-t-stop-after-loading-successfully-tp12001.html
> Sent from the Apache CarbonData Mailing List archive mailing list archive
> at Nabble.com.
>

Reply via email to