12 Replies Latest reply: Sep 29, 2014 4:35 AM by Shane Spencer RSS

    Internal inconsistency Types explained

    Shane Spencer

      We are regularly suffering from restarts of QVS and have been working with Qlik to understand and fix these without much luck. We often get this message in the logs:

       

      Restart: Server aborted trying to recover by restart. Reason for restart: Internal inconsistency, type ?, detected.

       

      I found some info about these errors a while back (I forget the Source):

       

      These “type” errors are fairly generic. However they only occur when something deep inside QlikView goes wrong. Historically this was often due to a bug but also can happen when the QVS.exe is allocated the maximum physical memory available.
      There’s no easy diagnosis here and we have to try various changes. QlikTech may ask you to put your QVS.exe into trace mode but usually only when a repeatable action can be executed that causes the failure. The output of the trace is passed over to R&D.

      Here is the explanation of the ‘type’ errors:

      Internal inconsistency, type A, detected.
      This error is signalled when QlikView gets a general exception when it tries to allocate memory.

      Internal inconsistency, type C, detected.
      This error is signalled when the run-time terminates QlikView in an unexpected way.

       

      Internal inconsistency, type D, detected.
      This error is signalled when QlikView gets a general exception on deletion of a dynamic array (TDynArray or TObjArray). Typically it is a side-effect of a failure (access violation) and the subsequent clean-up.

      Internal inconsistency, type F, detected.
      This error is signalled when QlikView gets a general exception when it tries to allocate memory.
      (Same type of inconsistency as type A, but detected on another level)

      So a typical error trigger can be memory allocation. This would be a Type F. By the nature of not being able to allocate memory, you’d expect Type D and C to follow. The memory allocation could be to the QVS.exe or to a single chart.

       

      However more recently we are also seeing:

       

      Restart: Server aborted trying to recover by restart. Reason for restart: Internal inconsistency, type B, detected.

      Restart: Server aborted trying to recover by restart. Reason for restart: Internal inconsistency, type S, detected.

       

      Has anyone got a full list of Internal Inconsistency types and their meaning?

        • Re: Internal inconsistency Types explained
          Richard Garforth

          Shane,

           

          Type B.  Means I'm bored of crashing with type C.

           

          This was mentioned here though Get Internal inconsistency, type B, detected

           

          Richard

          • Re: Internal inconsistency Types explained
            Ronnie Taborn

            What version are you on?

            • Re: Internal inconsistency Types explained
              Shane Spencer

              I'm on Client Build Number 11.20.12018.0.

               

              However the question I'm asking is does anyone have an official explanation as to what the different types of Inconsistency Type errors mean. The list I've got (post above) is incomplete.

              • Re: Internal inconsistency Types explained
                Richard Garforth

                Shane,

                 

                Was this what you were looking for?

                 

                Server Deployment Compatibility Warning

                 

                No Type S though.

                 

                Richard

                  • Re: Internal inconsistency Types explained
                    Shane Spencer

                    It's part way there, filling in some blanks.

                     

                    Internal inconsistency, type A, detected.

                    This error is signalled when QlikView gets a general exception when it tries to allocate memory.

                    This error will not be detected in QV.exe.

                     

                    Internal inconsistency, type B, detected.

                    (type F errors were reported as type B in versions before QlikView 9)

                    This error is signalled when QlikView tries to release memory that it has not allocated.

                    Typically it is a side-effect of a failure (access violation) and the subsequent clean-up.

                    This error is detected in QV.exe

                     

                    Internal inconsistency, type C, detected.

                    This error is signalled when the run-time terminates QlikView in an unexpected way.

                    This error is detected in QV.exe

                     

                    Internal inconsistency, type D, detected.

                    This error is signalled when QlikView gets a general exception on deletion of a dynamic array

                    (TDynArray or TObjArray)

                    Typically it is a side-effect of a failure (access violation) and the subsequent clean-up.

                    This error is detected in QV.exe

                     

                    Internal inconsistency, type E, detected.

                    This error is signalled when QlikView tries to flush memory and it has looped more than

                    100 000 times on one memory block size. The blocks are tied together in liked lists, so

                    more than 100 000 elements in one list is and indication of a circular reference in the list of allocated blocks

                    This error is detected in QV.exe

                     

                    Internal inconsistency, type F, detected.

                    (type F errors were reported as type B in versions before QlikView 9)

                    This error is signalled when QlikView gets a general exception when it tries to allocate memory.

                    (Same type of incosistency as type A, but detected on another level)

                    This error will not be detected in QV.exe.

                     

                    Internal inconsistency, type L, detected.

                    This error is signalled when QlikView has detected a circular reference in the global memory pool.

                    This error is detected in QV.exe

                      • Re: Internal inconsistency Types explained
                        Shane Spencer

                        I raised a case with Qlik to get an explanation about Type 2.

                         

                        Internal inconsistency, type S, detected.

                        This error is originated when something goes wrong when a document session a particular user has is to be closed in order to be opened again. For example when a document that is already opened is reloaded and distributed.

                         

                        Moreover, when it happens the QVS service is commanded to restart for changes to take effect.

                         

                        A setting that may cause this can be found in your Qlikview Desktop´s configuration. In particular in Settings / Document Properties / Server / Refresh Mode when Document is Updated on Server / Server performs refresh automatically without client action.


                          • Re: Internal inconsistency Types explained

                            Dear Shane,

                             

                            do you have any suggestion which configuration circumvents that error?

                             

                            It would be great if this thread could be extended with found solutions (if existing) to each internak inconsistency type.

                             

                            Thank you.

                             

                            Best Regards

                            Hannes

                              • Re: Internal inconsistency Types explained
                                Shane Spencer

                                Hi Hannes, I don't think it's quite as simple as that. It's not so prescriptive that if you get X error you apply a patch, or change a setting, etc or else you could preempt the errors. The error simply gives you an indication of the general cause of the issue so you can focus your investigations.

                                  • Re: Internal inconsistency Types explained

                                    Hi Shane,

                                    thank you for the quick response. I agree, that there cannot not be a "this follows that" relationship to each of the individual types. Nonetheless one could provide something like "We had the F-Type, Occured whenever (...) , Solved by (...). Just to provide the community with sth to be able to tap into or a map to follow where to shed some light on. 

                                     

                                    Im onto the S-type. Specifically im onto your statement "A setting that may cause this can be found in your Qlikview Desktop´s configuration. In particular in Settings / Document Properties / Server / Refresh Mode when Document is Updated on Server / Server performs refresh automatically without client action".

                                     

                                    Any Piece of advice here, how to change this particular setting?

                                     

                                    Best,

                                    Hannes

                                      • Re: Internal inconsistency Types explained
                                        Shane Spencer

                                        This was something I did look in to. You simply change the setting as described above. i.e.

                                         

                                         

                                        However some months ago we had to change the setting 'Server...' to 'Client initiates...' because of some session termination issues we were having.

                                         

                                        The Qlikview setting for "Refresh Mode when document is Updated on Server" was set to "Client initiates refresh.  If old data not kept on server or client too old, session will be disconnected" , this is incorrect as it clashes with the "Allow only one copy in Memory"  parameter of the Qlikview server control Panel. "Server performs refresh automatically without any client action".

                                         

                                         

                                        The statement about "A setting that may cause this..." was from Qlik (not myself) so I would take it with a large dose of salt.

                                  • Re: Internal inconsistency Types explained
                                    Shane Spencer

                                    n.b. I put the error explanations in a document: Internal inconsistency Types explained.