Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Monitoring (RRD) graphs have bugs

    Scheduled Pinned Locked Moved webGUI
    20 Posts 11 Posters 5.6k Views
    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.
    • jahonixJ
      jahonix
      last edited by

      @seidler2547:

      on i386

      Does your hardware support 64bit operation? AFAIK it's highly recommended to swap architecture if possible.
      Development takes place mostly (if not only) in the 64bit domain, therefore it's tested much more intense. And pfSense i386 won't be around for too long anymore.

      But that doesn't solve your problems just yet, I know.

      1 Reply Last reply Reply Quote 0
      • stan-qazS
        stan-qaz
        last edited by

        Interesting, my Chrome, Chromium, Firefox and Konqueror all work, however the latest beta of Brave (shields up or down) does not show the table or mouse-over info.

        1 Reply Last reply Reply Quote 0
        • jdillardJ
          jdillard
          last edited by

          @stan-qaz:

          however the latest beta of Brave (shields up or down) does not show the table or mouse-over info.

          This is a tongue-in-cheek tweet from an engineer at Brave :P

          https://twitter.com/bcrypt/status/766071991870689280

          They have some smart people working there, they will most likely have it working by the time it gets out of beta status.

          1 Reply Last reply Reply Quote 0
          • N
            NOYB
            last edited by

            Windows 8.1, IE11, i386 2.3.2.  Not seeing that issue here.

            1 Reply Last reply Reply Quote 0
            • S
              seidler2547
              last edited by

              Thanks for the replies. I tested this in Firefox and Chrome on Linux. I've been thinking about switching to amd64, but I need to coordinate with our hosting provider and the remote sites, so that'll take some time.

              I just tested this on a Firefox on a Windows machine and it's the same behaviour. I agree that it's most likely the browser botching up, but it seems the root cause is some data sent from pfSense. I haven't tested this extensively yet, but my memory tells me this also happened on a new amd64 install after playing around (i.e. changing paramaters) for long enough.

              What else can I do to get to the bottom of this? Anyone wants my RRD files to test with?

              Stefan

              1 Reply Last reply Reply Quote 0
              • johnpozJ
                johnpoz LAYER 8 Global Moderator
                last edited by

                what would you hosting provider and or remote sites have to do with your copy of pfsense being 64 or 32bit?  That makes no sense?  Is this pfsense hosted somewhere and your accessing it via internet or something??

                An intelligent man is sometimes forced to be drunk to spend time with his fools
                If you get confused: Listen to the Music Play
                Please don't Chat/PM me for help, unless mod related
                SG-4860 24.11 | Lab VMs 2.8, 24.11

                1 Reply Last reply Reply Quote 0
                • S
                  seidler2547
                  last edited by

                  @johnpoz:

                  what would you hosting provider and or remote sites have to do with your copy of pfsense being 64 or 32bit?  That makes no sense?  Is this pfsense hosted somewhere and your accessing it via internet or something??

                  Yes, it's a VMware virtual machine and it's the central hub to all our remote offices.

                  It was initially (when 1.2.3 was the most recent version) set up as 32-bit because we thought that's enough. To change it we would need to contact the datacenter admins to change the VM type or to set up a new VM and then replace it. Requires a migration plan etc. for minimal downtime.

                  Stefan

                  1 Reply Last reply Reply Quote 0
                  • johnpozJ
                    johnpoz LAYER 8 Global Moderator
                    last edited by

                    So is the box your testing this from on the same network as the pfsense interface your hitting?  Or is there stuff in between? Are you on some VM on the same layer 2 as the pfsense lan interface that your hitting the webgui from?  Are you at some remote site using proxy to access pfsense wan IP that you allowed??

                    An intelligent man is sometimes forced to be drunk to spend time with his fools
                    If you get confused: Listen to the Music Play
                    Please don't Chat/PM me for help, unless mod related
                    SG-4860 24.11 | Lab VMs 2.8, 24.11

                    1 Reply Last reply Reply Quote 0
                    • jdillardJ
                      jdillard
                      last edited by

                      @seidler2547:

                      What else can I do to get to the bottom of this? Anyone wants my RRD files to test with?

                      Stefan

                      In Chrome you can right click the page and choose "Inspect" and then select the "Console" tab to see if you have any errors.

                      1 Reply Last reply Reply Quote 0
                      • S
                        seidler2547
                        last edited by

                        Ah, why didn't I think of this before. Thanks for the reminder. This is what I get in Firefox:

                        TypeError: n is undefined
                        t()
                        d3.min.js:1
                        draw_graph/status_monitoring.php:998
                        Co.text/<()
                        d3.min.js:3
                        Co.each/<()
                        d3.min.js:3
                        Y()
                        d3.min.js:1
                        Co.each()
                        d3.min.js:3
                        Co.text()
                        d3.min.js:3
                        n/<()
                        d3.min.js:5
                        Yl.each/<()
                        d3.min.js:5
                        Y()
                        d3.min.js:1
                        Yl.each()
                        d3.min.js:5
                        n()
                        d3.min.js:5
                        Co.call()
                        d3.min.js:3
                        chart/<()
                        nv.d3.js:1626
                        Yl.each/<()
                        d3.min.js:5
                        Y()
                        d3.min.js:1
                        Yl.each()
                        d3.min.js:5
                        chart()
                        nv.d3.js:1610
                        Co.call()
                        d3.min.js:3
                        chart/<()
                        nv.d3.js:9569
                        Yl.each/<()
                        d3.min.js:5
                        Y()
                        d3.min.js:1
                        Yl.each()
                        d3.min.js:5
                        chart()
                        nv.d3.js:9377
                        Co.call()
                        d3.min.js:3
                        draw_graph/status_monitoring.php:1143
                        render/renderLoop()
                        nv.d3.js:99
                        d3.min.js:1:14696
                        
                        

                        Whereas Chrome says:

                        
                        Uncaught TypeError: Cannot read property 'length' of undefinedt @ d3.min.js:1(anonymous function) @ status_monitoring.php:998arguments.length.each.function.n.textContent @ d3.min.js:3(anonymous function) @ d3.min.js:3Y @ d3.min.js:1Co.each @ d3.min.js:3Co.text @ d3.min.js:3(anonymous function) @ d3.min.js:5(anonymous function) @ d3.min.js:5Y @ d3.min.js:1Yl.each @ d3.min.js:5n @ d3.min.js:5Co.call @ d3.min.js:3(anonymous function) @ nv.d3.js:1626(anonymous function) @ d3.min.js:5Y @ d3.min.js:1Yl.each @ d3.min.js:5chart @ nv.d3.js:1610Co.call @ d3.min.js:3(anonymous function) @ nv.d3.js:9570(anonymous function) @ d3.min.js:5Y @ d3.min.js:1Yl.each @ d3.min.js:5chart @ nv.d3.js:9377Co.call @ d3.min.js:3(anonymous function) @ status_monitoring.php:1147renderLoop @ nv.d3.js:99
                        

                        Our remote sites (one of which I am at) are connected through OpenVPN in star topology. But I also tested on a Windows VM in the same LAN as the pfSense and it's the same.

                        Stefan

                        1 Reply Last reply Reply Quote 0
                        • F
                          fostytou
                          last edited by

                          I just want to follow up that I'm having the same issue.  2.3 and 2.3.1 seemed to work fine with the new charting system and I was able to play around without issue.  2.3.2 presents itself just the same - I can see the initial graph but if I refresh or update settings it disappears with the length error in chrome with this section underlined:

                          =n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},i=e(r,n,t,0);if(i!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var u=null!=r.Z&&va!==Hn,o=new(u?Hn:va);return"j"in r?o.setFullYear(r.y,0,r.j):"W"in r||"U"in r?("w"in r||(r.w="W"in r?1:0),o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),u?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var i,u,o,a=0,l=t.length,c=e.length;l>a;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e<r;)t.set(n[e].tolowercase(),e);return t}function="" $n(n,t,e){ma.lastindex="0;var" r="ma.exec(t.slice(e,e+1));return" r?(n.w="+r[0],e+r[0].length):-1}function" bn(n,t,e){ma.lastindex="0;var" r?(n.u="+r[0],e+r[0].length):-1}function" wn(n,t,e){ma.lastindex="0;var" jn(n,t,e){ma.lastindex="0;var" r?(n.y="+r[0],e+r[0].length):-1}function" gn(n,t,e){ma.lastindex="0;var" kn(n,t,e){return="" ^[+-]\d{4}$="" .test(t="t.slice(e,e+5))?(n.Z=-t,e+5):-1}function" qn(n){return="" n+(n="">68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var="" e="0,r=n[e];!r[1](t);)r=n[++e];return" r[0](t)}}function="" ft(){}function="" st(n,t,e){var="" r="e.s=n+t,i=r-n,u=r-i;e.t=n-u+(t-i)}function" ht(n,t){n&&wa.hasownproperty(n.type)&&wa[n.type](n,t)}function="" pt(n,t,e){var="" r,i="-1,u=n.length-e;for(t.lineStart();++i<u;)r=n[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function" gt(n,t){var="" vt(){function="" n(n,t){n*="Yo,t=t*Yo/2+Fo/4;var">=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])<uo&&xo(n[1]-t[1])<uo}function st(n,t){n*="Yo;var" e="Math.cos(t*=Yo);kt(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function" kt(n,t,e){++ea,ca+="(n-Ca)/Ea,za+=(t-za)/Ea,La+=(e-La)/Ea}function" nt(){function="" n(n,i){n*="Yo;var" u="Math.cos(i*=Yo),o=u*Math.cos(n),a=u*Math.sin(n),l=Math.sin(i),c=Math.atan2(Math.sqrt((c=e*l-r*a)*c+(c=r*o-t*l)*c+(c=t*a-e*o)*c),t*o+e*a+r*l);Aa+=c,qa+=c*(t+(t=o)),Ta+=c*(e+(e=a)),Ra+=c*(r+(r=l)),kt(t,e,r)}var" t,e,r;ja.point="function(i,u){i*=Yo;var" o="Math.cos(u*=Yo);t=o*Math.cos(i),e=o*Math.sin(i),r=Math.sin(u),ja.point=n,kt(t,e,r)}}function" et(){ja.point="St}function" at(){function="" n(n,t){n*="Yo;var" t,e,r,i,u;ja.point="function(o,a){t=o,e=a,ja.point=n,o*=Yo;var" l="Math.cos(a*=Yo);r=l*Math.cos(o),i=l*Math.sin(o),u=Math.sin(a),kt(r,i,u)},ja.lineEnd=function(){n(t,e),ja.lineEnd=Et,ja.point=St}}function" ct(n,t){function="" e(e,r){return="" n.invert&&t.invert&&(e.invert="function(e,r){return" zt(){return!0}function="" lt(n,t,e,r,i){var="" t,e="n[0],r=n[t];if(wt(e,r)){i.lineStart();for(var" a="0;t">a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r<t;)i.n=e=n[r],e.p=i,i=e;i.n=e=n[0],e.p=i}}function tt(n,t,e,r){this.x="n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function" rt(n,t,e,r){return="" function(i,u){function="" o(t,e){var="" r="i(t,e);n(t=r[0],e=r[1])&amp;&amp;u.point(t,e)}function" a(n,t){var="" e="i(n,t);d.point(e[0],e[1])}function" l(){m.point="a,d.lineStart()}function" c(){m.point="o,d.lineEnd()}function" f(n,t){v.push([n,t]);var="" s(){x.linestart(),v="[]}function" h(){f(v[0][0],v[0][1]),x.lineend();var="" n,t="x.clean(),e=M.buffer(),r=e.length;if(v.pop(),g.push(v),v=null,r)if(1&amp;t){n=e[0];var" i,r="n.length-1,o=-1;if(r">0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o<r;)u.point((i=n[o])[0],i[1]);u.lineend()}}else r="">1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)<uo?(n.point(e,r=(r+o) 2="">0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)<uo&&(e-=i*uo),xo(u-a)<uo&&(u-=a*uo),r=ft(e,r,u,o),n.point(i,r),n.lineend(),n.linestart(),n.point(a,r),t=0),n.point(e=u,r=o),i=a},lineend:function(){n.lineend(),e=r=nan},clean:function(){return 2-t}}}function="" ft(n,t,e,r){var="" i,u,o="Math.sin(n-e);return" xo(o)="">Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]<t[0]?fo:-fo;i=e*u 2,r.point(-u,i),r.point(0,i),r.point(u,i)}else="" r.point(t[0],t[1])}function="" ot(n,t){var="" e="n[0],r=n[1],i=[Math.sin(e),-Math.cos(e),0],u=0,o=0;ka.reset();for(var" a="0,l=t.length;l">a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)<uo,c=a||uo>E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)<uo?k:n):k<=b[1]&&b[1]<=n:e>Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)<uo?i>0?0:3:xo(r[0]-e)<uo?i>0?2:1:xo(r[1]-t)<uo?i>0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){
                          
                          It appears I see the same problem in Microsoft Edge 38.14393.0.0.[/i][/i]</uo?i></uo?i></uo?i></uo?k:n):k<=b[1]&&b[1]<=n:e></uo,c=a||uo></t[0]?fo:-fo;i=e*u></uo&&(e-=i*uo),xo(u-a)<uo&&(u-=a*uo),r=ft(e,r,u,o),n.point(i,r),n.lineend(),n.linestart(),n.point(a,r),t=0),n.point(e=u,r=o),i=a},lineend:function(){n.lineend(),e=r=nan},clean:function(){return></uo?(n.point(e,r=(r+o)></r;)u.point((i=n[o])[0],i[1]);u.lineend()}}else></t;)i.n=e=n[r],e.p=i,i=e;i.n=e=n[0],e.p=i}}function></uo&&xo(n[1]-t[1])<uo}function></t;)n[e][0]=this(n[e][0]);return></r;)t.set(n[e].tolowercase(),e);return>
                          
                          1 Reply Last reply Reply Quote 0
                          • F
                            fostytou
                            last edited by

                            I played with the monitoring screen again and was able to get past the display hangup (kinda).  If I set the default to quality and 1 month time period I have the problem, however if I set it to 2 days as a default I do not have the problem (until I select 1 month).  1 week only partially works and does not draw grid lines or axis' and then breaks the ability to change other settings as well.  I think this may be a problem with the template for the 1 month setting, but I also wonder if there is some corrupted quality data that is causing the draw problem.

                            I think they come from different data pools but the 3 month setting in the drop-down seems to work fine.

                            So, the workaround for now might be to just select a different default value than you are using.

                            1 Reply Last reply Reply Quote 0
                            • A
                              arion_p
                              last edited by

                              This is the same issue I have described in https://forum.pfsense.org/index.php?topic=119175.0

                              The cause seems to be that sometimes the step value returned from the XHR call (to rrd_fetch_json.php) is half of what it should be. The client (javascript) code looks up this value in a constant array to determine the rest of the settings but this value does not exist in the array causing the issue.

                              Notice that the step returned from rrd_fetch_json.php is actually read from the RRD data, so it is probably an issue with RRD data collection (or interpretaion)

                              1 Reply Last reply Reply Quote 0
                              • jdillardJ
                                jdillard
                                last edited by

                                Nice detective work! I created a redmine ticket and assigned it to myself: https://redmine.pfsense.org/issues/6860

                                1 Reply Last reply Reply Quote 0
                                • B
                                  bekefigabor
                                  last edited by

                                  Thanks Jarod!
                                  I tested your fix https://github.com/pfsense/FreeBSD-ports/commit/5288d76204e51a289c31d249f1cbd1174a4a9eca, it works great!
                                  But the same problem appears in Quality graph (1 week period), with 1800 step value.
                                  rrd_fetch_json.php response:

                                  
                                  ...
                                          "key": "packet loss",
                                          "step": 1800,
                                          "last_updated": 1484999085000,
                                  ...
                                  
                                  

                                  Gabor

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    ali1yilmaz
                                    last edited by

                                    thanks

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      doktornotor Banned
                                      last edited by

                                      https://github.com/pfsense/FreeBSD-ports/pull/432

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post
                                      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.