<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    The seg-fault is fixed.<br>
    <br>
    The second issue still exists.  I'll make a github issue for it.<br>
    <br>
    Thanks!<br>
    <br>
    <div class="moz-cite-prefix">On 1/19/22 14:31, Andrew Bell wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CACJ51z0dFW1CnR8PZ6zoL8kO0iMTj7RFeTPdQugx_=8twMUaOw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">I think this is now fixed in master. If you're
        still having issues, you should create an issue. thanks.</div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Tue, Jan 18, 2022 at 3:05
          PM Jim Klassen <<a href="mailto:klassen.js@gmail.com"
            moz-do-not-send="true" class="moz-txt-link-freetext">klassen.js@gmail.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div> I noticed another related but likely different issue
            too.  It looks like zero point laz files made with pdal are
            invalid (compressed with laszip or lazperf w/patch).  Zero
            point las files appear OK.<br>
            <br>
            $ pdal translate lasperf.fail.txt lasperf.fail.las<br>
            $ pdal translate lasperf.fail.txt lasperf.fail.laz
            --writers.las.compression=laszip<br>
            <br>
            $ ls -l <a href="http://lasperf.fail.la" target="_blank"
              moz-do-not-send="true">lasperf.fail.la</a>?<br>
            -rw-r--r-- 1 jimk jimk 227 Jan 18 08:53 lasperf.fail.las<br>
            -rw-r--r-- 1 jimk jimk 349 Jan 18 08:54 lasperf.fail.laz<br>
            <br>
            $ pdal info lasperf.fail.laz<br>
            PDAL: Unexpected end of file.<br>
            <br>
            $ pdal info lasperf.fail.las<br>
            {<br>
              "file_size": 227,<br>
              "filename": "lasperf.fail.las",<br>
              "now": "2022-01-18T08:53:14-0600",<br>
              "pdal_version": "2.3.0 (git-version: ac8068)",<br>
              "reader": "readers.las",<br>
              "stats":<br>
              {<br>
                "statistic":<br>
                [<br>
                  {<br>
                    "average": 0,<br>
                    "count": 0,<br>
                    "maximum": -1.797693135e+308,<br>
                    "minimum": 1.797693135e+308,<br>
                    "name": "X",<br>
                    "position": 0,<br>
                    "stddev": 0,<br>
                    "variance": 0<br>
                  },<br>
            ...<br>
            <br>
            <div>On 1/18/22 08:54, Andrew Bell wrote:<br>
            </div>
            <blockquote type="cite">
              <div dir="ltr">Trying again... here's the ticket... <a
                  href="https://github.com/PDAL/PDAL/issues/3652"
                  target="_blank" moz-do-not-send="true"
                  class="moz-txt-link-freetext">https://github.com/PDAL/PDAL/issues/3652</a></div>
              <br>
              <div class="gmail_quote">
                <div dir="ltr" class="gmail_attr">On Tue, Jan 18, 2022
                  at 9:54 AM Andrew Bell <<a
                    href="mailto:andrew.bell.ia@gmail.com"
                    target="_blank" moz-do-not-send="true"
                    class="moz-txt-link-freetext">andrew.bell.ia@gmail.com</a>>
                  wrote:<br>
                </div>
                <blockquote class="gmail_quote" style="margin:0px 0px
                  0px 0.8ex;border-left:1px solid
                  rgb(204,204,204);padding-left:1ex">
                  <div dir="ltr">Here's the ticket...</div>
                  <br>
                  <div class="gmail_quote">
                    <div dir="ltr" class="gmail_attr">On Tue, Jan 18,
                      2022 at 9:52 AM Andrew Bell <<a
                        href="mailto:andrew.bell.ia@gmail.com"
                        target="_blank" moz-do-not-send="true"
                        class="moz-txt-link-freetext">andrew.bell.ia@gmail.com</a>>
                      wrote:<br>
                    </div>
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px 0.8ex;border-left:1px solid
                      rgb(204,204,204);padding-left:1ex">
                      <div dir="ltr">I've already fixed this, but I
                        can't locate the PR right now. I'll write again
                        when I find it.</div>
                      <br>
                      <div class="gmail_quote">
                        <div dir="ltr" class="gmail_attr">On Tue, Jan
                          18, 2022 at 9:48 AM Jim Klassen <<a
                            href="mailto:klassen.js@gmail.com"
                            target="_blank" moz-do-not-send="true"
                            class="moz-txt-link-freetext">klassen.js@gmail.com</a>>
                          wrote:<br>
                        </div>
                        <blockquote class="gmail_quote"
                          style="margin:0px 0px 0px
                          0.8ex;border-left:1px solid
                          rgb(204,204,204);padding-left:1ex">It appears
                          there is a seg-fault in pdal when compressing
                          a file with zero points with lazperf.  Using
                          laszip correctly creates an empty laz file. 
                          With at least one point into the source file
                          both laszip and lazperf work as expected.<br>
                          <br>
                          My guess is
                          LazPerfVlrCompressorImpl::compress() is never
                          getting called, so m_compressor is null, but
                          that condition isn't being checked in
                          LazPerfVlrCompressorImpl::done() before
                          calling m_compress->done().  I'm not sure
                          how much of LazPerfVlrCompressorImpl::done()
                          should be skipped if m_compressor is null
                          (there were no points to process).<br>
                          <br>
                          <br>
                          liblaszip: 3.4.1-6-gc7b67ca<br>
                          laz-perf: 3.0.0-1-g03ed832<br>
                          pdal: ac8068c7d<br>
                          <br>
                          <br>
                          $ cat lasperf.fail.txt<br>
                          X,Y,Z<br>
                          <br>
                          $ pdal info lasperf.fail.txt<br>
                          {<br>
                             "file_size": 7,<br>
                             "filename": "lasperf.fail.txt",<br>
                             "now": "2022-01-18T08:19:08-0600",<br>
                             "pdal_version": "2.3.0 (git-version:
                          ac8068)",<br>
                             "reader": "readers.text",<br>
                             "stats":<br>
                             {<br>
                               "statistic":<br>
                               [<br>
                                 {<br>
                                   "average": 0,<br>
                                   "count": 0,<br>
                                   "maximum": -1.797693135e+308,<br>
                                   "minimum": 1.797693135e+308,<br>
                                   "name": "X",<br>
                                   "position": 0,<br>
                                   "stddev": 0,<br>
                                   "variance": 0<br>
                                 },<br>
                                 {<br>
                                   "average": 0,<br>
                                   "count": 0,<br>
                                   "maximum": -1.797693135e+308,<br>
                                   "minimum": 1.797693135e+308,<br>
                                   "name": "Y",<br>
                                   "position": 1,<br>
                                   "stddev": 0,<br>
                                   "variance": 0<br>
                                 },<br>
                                 {<br>
                                   "average": 0,<br>
                                   "count": 0,<br>
                                   "maximum": -1.797693135e+308,<br>
                                   "minimum": 1.797693135e+308,<br>
                                   "name": "Z",<br>
                                   "position": 2,<br>
                                   "stddev": 0,<br>
                                   "variance": 0<br>
                                 }<br>
                               ]<br>
                             }<br>
                          }<br>
                          $ pdal translate lasperf.fail.txt
                          lasperf.fail.laz
                          --writers.las.compression=laszip<br>
                          $ pdal translate lasperf.fail.txt
                          lasperf.fail.laz
                          --writers.las.compression=lazperf<br>
                          Segmentation fault<br>
                          $ gdb --args pdal translate lasperf.fail.txt
                          lasperf.fail.laz
                          --writers.las.compression=lazperf<br>
                          GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git<br>
                          Copyright (C) 2021 Free Software Foundation,
                          Inc.<br>
                          License GPLv3+: GNU GPL version 3 or later
                          <<a href="http://gnu.org/licenses/gpl.html"
                            rel="noreferrer" target="_blank"
                            moz-do-not-send="true"
                            class="moz-txt-link-freetext">http://gnu.org/licenses/gpl.html</a>><br>
                          This is free software: you are free to change
                          and redistribute it.<br>
                          There is NO WARRANTY, to the extent permitted
                          by law.<br>
                          Type "show copying" and "show warranty" for
                          details.<br>
                          This GDB was configured as "x86_64-linux-gnu".<br>
                          Type "show configuration" for configuration
                          details.<br>
                          For bug reporting instructions, please see:<br>
                          <<a
                            href="https://www.gnu.org/software/gdb/bugs/"
                            rel="noreferrer" target="_blank"
                            moz-do-not-send="true"
                            class="moz-txt-link-freetext">https://www.gnu.org/software/gdb/bugs/</a>>.<br>
                          Find the GDB manual and other documentation
                          resources online at:<br>
                               <<a
                            href="http://www.gnu.org/software/gdb/documentation/"
                            rel="noreferrer" target="_blank"
                            moz-do-not-send="true"
                            class="moz-txt-link-freetext">http://www.gnu.org/software/gdb/documentation/</a>>.<br>
                          <br>
                          For help, type "help".<br>
                          Type "apropos word" to search for commands
                          related to "word"...<br>
                          Reading symbols from pdal...<br>
                          (No debugging symbols found in pdal)<br>
                          (gdb) run<br>
                          Starting program:
                          /apps/PointClouds/pdal/2.3.0-ac8068c7d-laszip/bin/pdal
                          translate lasperf.fail.txt lasperf.fail.laz
                          --writers.las.compression=lazperf<br>
                          [Thread debugging using libthread_db enabled]<br>
                          Using host libthread_db library
                          "/lib/x86_64-linux-gnu/libthread_db.so.1".<br>
                          <br>
                          Program received signal SIGSEGV, Segmentation
                          fault.<br>
                          0x00007ffff7e0c4d9 in
                          pdal::LazPerfVlrCompressorImpl::done
                          (this=0x4c2ea0)<br>
                               at
/apps/PointClouds/pdal/src/pdal/pdal/compression/LazPerfVlrCompression.cpp:101<br>
                          101            m_compressor->done();<br>
                          (gdb) print m_compressor<br>
                          $1 =
                          std::shared_ptr<lazperf::las_compressor>
                          (empty) = {get() = 0x0}<br>
                          (gdb) quit<br>
                          A debugging session is active.<br>
                          <br>
                               Inferior 1 [process 283225] will be
                          killed.<br>
                          <br>
                          Quit anyway? (y or n) y<br>
                          $<br>
                          <br>
_______________________________________________<br>
                          pdal mailing list<br>
                          <a href="mailto:pdal@lists.osgeo.org"
                            target="_blank" moz-do-not-send="true"
                            class="moz-txt-link-freetext">pdal@lists.osgeo.org</a><br>
                          <a
                            href="https://lists.osgeo.org/mailman/listinfo/pdal"
                            rel="noreferrer" target="_blank"
                            moz-do-not-send="true"
                            class="moz-txt-link-freetext">https://lists.osgeo.org/mailman/listinfo/pdal</a><br>
                        </blockquote>
                      </div>
                      <br clear="all">
                      <div><br>
                      </div>
                      -- <br>
                      <div dir="ltr">Andrew Bell<br>
                        <a href="mailto:andrew.bell.ia@gmail.com"
                          target="_blank" moz-do-not-send="true"
                          class="moz-txt-link-freetext">andrew.bell.ia@gmail.com</a></div>
                    </blockquote>
                  </div>
                  <br clear="all">
                  <div><br>
                  </div>
                  -- <br>
                  <div dir="ltr">Andrew Bell<br>
                    <a href="mailto:andrew.bell.ia@gmail.com"
                      target="_blank" moz-do-not-send="true"
                      class="moz-txt-link-freetext">andrew.bell.ia@gmail.com</a></div>
                </blockquote>
              </div>
              <br clear="all">
              <div><br>
              </div>
              -- <br>
              <div dir="ltr">Andrew Bell<br>
                <a href="mailto:andrew.bell.ia@gmail.com"
                  target="_blank" moz-do-not-send="true"
                  class="moz-txt-link-freetext">andrew.bell.ia@gmail.com</a></div>
            </blockquote>
            <br>
          </div>
        </blockquote>
      </div>
      <br clear="all">
      <div><br>
      </div>
      -- <br>
      <div dir="ltr" class="gmail_signature">Andrew Bell<br>
        <a href="mailto:andrew.bell.ia@gmail.com" target="_blank"
          moz-do-not-send="true" class="moz-txt-link-freetext">andrew.bell.ia@gmail.com</a></div>
    </blockquote>
    <br>
  </body>
</html>