• Recent
    • Tags
    • Popular
    • Register
    • Login

    Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

    Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website Mango 5 Documentation Website

    Nullpointer in vmstat when exiting

    Development general discussion
    2
    3
    2.1k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      craig
      last edited by

      Whenever I shutdown mango the vmstat daemon thread crashes with a nullpointer exception. this isn't a big deal since I am shutting it down anyway, but it also happens when disabling the data source:

      stack:

      this	VMStatDataSourceRT  (id=189)	
      	addedChangedPoints	ArrayList<E>  (id=200)	
      		elementData	Object[10]  (id=233)	
      		modCount	0	
      		size	0	
      	attributePositions	HashMap<K,V>  (id=210)	
      		entrySet	HashMap$EntrySet  (id=309)	
      		keySet	null	
      		loadFactor	0.75	
      		modCount	16	
      		size	16	
      		table	HashMap$Entry<K,V>[32]  (id=311)	
      		threshold	24	
      		values	null	
      	dataPoints	ArrayList<E>  (id=214)	
      		elementData	Object[10]  (id=308)	
      		modCount	0	
      		size	0	
      	eventTypes	ArrayList<E>  (id=215)	
      		elementData	Object[10]  (id=307)	
      		modCount	2	
      		size	2	
      	in	BufferedReader  (id=216)	
      		cb	 (id=303)	
      		in	InputStreamReader  (id=305)	
      		lock	InputStreamReader  (id=305)	
      		markedChar	-1	
      		markedSkipLF	false	
      		nChars	78	
      		nextChar	78	
      		readAheadLimit	0	
      		skipBuffer	null	
      		skipLF	false	
      	log	Log4JLogger  (id=221)	
      		logger	Logger  (id=298)	
      		name	"com.serotonin.mango.rt.dataSource.vmstat.VMStatDataSourceRT" (id=302)	
      	pointListChangeLock	Boolean  (id=224)	
      		value	false	
      	removedPoints	ArrayList<E>  (id=227)	
      		elementData	Object[10]  (id=297)	
      		modCount	0	
      		size	0	
      	terminated	true	
      	vmstatProcess	UNIXProcess  (id=194)	
      		exitcode	143	
      		hasExited	true	
      		pid	18998	
      		stderr_fd	FileDescriptor  (id=286)	
      		stderr_stream	FileInputStream  (id=288)	
      		stdin_fd	FileDescriptor  (id=291)	
      		stdin_stream	BufferedOutputStream  (id=292)	
      		stdout_fd	FileDescriptor  (id=312)	
      		stdout_stream	BufferedInputStream  (id=313)	
      	vo	VMStatDataSourceVO  (id=228)	
      		alarmLevels	HashMap<K,V>  (id=274)	
      		enabled	true	
      		id	6	
      		name	"vmstat" (id=282)	
      		outputScale	2	
      		pollSeconds	60	
      		xid	"DS_742792" (id=285)	
      	vo	VMStatDataSourceVO  (id=228)	
      		alarmLevels	HashMap<K,V>  (id=274)	
      			entrySet	HashMap$EntrySet  (id=275)	
      			keySet	null	
      			loadFactor	0.75	
      			modCount	2	
      			size	2	
      			table	HashMap$Entry<K,V>[16]  (id=279)	
      			threshold	12	
      			values	null	
      		enabled	true	
      		id	6	
      		name	"vmstat" (id=282)	
      		outputScale	2	
      		pollSeconds	60	
      		xid	"DS_742792" (id=285)	
      line	null	
      
      

      As you can see line is null. the nullpointer occurs at the readParts(line.split) line below, every time when I shut down.

       public void run() {
              try {
                  while (true) {
                      String line = in.readLine();
                      readParts(line.split("\\s+"));
                      readError();
                  }
              }
      

      The appropriate fix isn't obvious to me.

      1 Reply Last reply Reply Quote 0
      • M
        mlohbihler
        last edited by

        Hi Craig,

        I already have a fix for this in for the next version. I did this:

        
                    while (true) {
                        String line = in.readLine();
                        
                        if (line == null) {
                            if (terminated)
                                break;
                            else
                                throw new IOException("no data");
                        }
                        
                        readParts(line.split("\\s+"));
                        readError();
                    }
        
        

        Best regards,
        Matthew

        1 Reply Last reply Reply Quote 0
        • First post
          Last post