I have no idea what the problem could be.  However, I have a fancy new Mac
laptop arriving next week on which I will make sure to test protocol
buffers.

On Tue, Nov 10, 2009 at 9:13 PM, Ryan Rosario <uclamath...@gmail.com> wrote:

>
> Hi,
>
> I am the fellow that has been dealing with this problem on Snow
> Leopard.
> I am left scratching my head as to the cause.
>
> I installed VMware in Snow Leopard and loaded Snow Leopard Server onto
> VMware (not possible to install regular Snow Leopard on it).
> I wanted to experiment with a clean system that only has an OS and
> XCode on it.
>
> I built pkg-config as well as protobuf using the Apple g++. I am able
> to get a bit further with Saptarshi's example program given earlier,
> and then I get the same crash. It seems like it may be occurring in
> some type of destructor, when the program ends. I am not sure if this
> progress is due to the clean configuration, or if it is due to the
> fact that I am using 10.6 Server instead of regular 10.6.
>
> I also tried adding -D_GLIBCXX_FULLY_DYNAMIC_STRING to CPPFLAGS and
> even CXXFLAGS to the makefiles for both protobuf and the example and
> rebuilding protobuf and the examples to no avail.
>
> If more information is needed, let me know and I will post.
>
> -Ryan
>
> 10.6 Server, "clean" configuration with Apple compilers
>
> Program received signal SIGABRT, Aborted.
> 0x00007fff869b8ff6 in __kill ()
> (gdb) backtrace
> #0  0x00007fff869b8ff6 in __kill ()
> #1  0x00007fff86a5a072 in abort ()
> #2  0x00007fff86971095 in free ()
> #3  0x0000000100008399 in __tcf_1 () at basic_string.h:238
> #4  0x00007fff8697d274 in __cxa_finalize ()
> #5  0x00007fff8697d18c in exit ()
> #6  0x000000010000187f in start () at atomicity.h:50
>
> 10.6, custom configuration, GCC 4.5
>
> #0  0x00007fff836bdff6 in __kill ()
> #1  0x00007fff8375f072 in abort ()
> #2  0x00007fff83676095 in free ()
> #3  0x00007fff87aa71e8 in std::string::reserve ()
> #4  0x00007fff87aa742b in std::string::append ()
> #5  0x000000010002fd3c in
> google::protobuf::io::CodedInputStream::ReadString ()
> #6  0x000000010000346c in
> google::protobuf::internal::WireFormatLite::ReadString () at /usr/
> local/include/google/protobuf/wire_format_lite_inl.h:142
> #7  0x000000010000346c in STRING::MergePartialFromCodedStream
> (this=0x1004014b0, input=0x7fff5fbfeed0) at wire_format_lite_inl.h:939
> #8  0x0000000100004e58 in ReadMessageNoVirtual<STRING> [inlined] ()
> at /usr/local/include/google/protobuf/wire_format_lite_inl.h:200
> #9  0x0000000100004e58 in REXP::MergePartialFromCodedStream
> (this=0x1004012c0, input=0x7fff5fbfeed0) at wire_format_lite_inl.h:397
> #10 0x00000001000052b8 in ReadMessageNoVirtual<REXP> [inlined] () at /
> usr/local/include/google/protobuf/wire_format_lite_inl.h:200
> #11 0x00000001000052b8 in REXP::MergePartialFromCodedStream
> (this=0x7fff5fbfef70, input=0x7fff5fbfeed0) at wire_format_lite_inl.h:
> 438
> #12 0x000000010001736e in
> google::protobuf::MessageLite::ParseFromArray ()
> #13 0x00000001000081ca in main (argc=<value temporarily unavailable,
> due to optimizations>, argv=<value temporarily unavailable, due to
> optimizations>) at testparse.cc:25
>
>
> On Nov 1, 6:35 am, Saptarshi Guha <saptarshi.g...@gmail.com> wrote:
> > Hello,
> > Your explanation sounds right. Neither do I have Snow Leopard, so will
> > have to ask the user.
> > Personally, I would never (unless absolutely  forced to) install
> > another GCC.  Tried it once, and so many things started failing it was
> > miserable.
> >
> > I'll get back to this thread.
> >
> > Regards
> > Saptarshi
> >
> > On Nov 1, 2009, at 3:15 AM, Kenton Varda wrote:
> >
> >
> >
> > > Sorry, I don't have access to a Snow Leopard machine to test this on.
> >
> > > However, your second link looks like a very likely culprit.  They
> > > seem to be saying that all C++ code on Snow Leopard needs to be
> > > compiled with -D_GLIBCXX_FULLY_DYNAMIC_STRING, otherwise it will
> > > likely crash.  So, I'd recommend re-compiling libprotobuf and your
> > > app with this flag.
> >
> > > But I'm confused.  This seems like a truly massive bug --
> > > essentially, it sounds like Apple has released a C++ compiler that,
> > > by default, is not compatible with their C++ standard library.  Is
> > > it really possible that such a huge problem would make it through
> > > basic testing, let alone be shipped and live several months with
> > > fewer than 10 sites on the entire internet mentioning it?
> >
> > > No, that seems unlikely to me.  My guess is that the Apple release
> > > of GCC actually sets this flag correctly by default, but you are
> > > actually using some other GCC, perhaps from MacPorts or some such.
> > > Could this be the case?
> >
> > > On Sat, Oct 31, 2009 at 5:58 PM, Saptarshi Guha <
> saptarshi.g...@gmail.com
> > > > wrote:
> >
> > > On Oct 30, 2009, at 7:14 PM, Kenton Varda wrote:
> >
> > > > There's not much we can do with this without a reproducible demo.
> >
> > > Hello,
> > > I have placed a link[1] to tgz file, which can be run like
> >
> > > tar zxvf test.parse.tgz
> > > cd testdata
> > > make
> > > ./testme testdata.bin
> >
> > > If all works well, it should display an  entry of string keys and
> > > string values.
> > > It compiles and runs on Leopard 10.5.7 (Macbook), but fails with
> >
> > > "
> > > ./testme testdata.bin
> > > Reading in 3239 bytes
> > > testme(41471) malloc: *** error for object 0x100222520: pointer being
> > > freed was not allocated
> > > *** set a breakpoint in malloc_error_break to debug
> > > "
> > > on Snow Leopard (i can't recall the machine type)
> >
> > > On another note,  I read that( from an emacs blog) that Snow Leopard
> > > has "fully dynamic strings" enabled by default
> > > and there is an issue regarding freeing such strings[2] . I'm not sure
> > > if this even related.
> >
> > > Thanks
> > > Saptarshi
> >
> > > [1]http://ml.stat.purdue.edu/rpackages/test.parse.tgz
> > > [2]http://www.newartisans.com/2009/10/a-c-gotcha-on-snow-leopard.html
> >
> > > > On Fri, Oct 30, 2009 at 4:04 PM, Saptarshi Guha <
> saptarshi.g...@gmail.com
> > > > > wrote:
> >
> > > > Hello,
> > > > I have  a byte array which I'd like to deserialize, it is about 3K
> > > > bytes.
> > > > On RHEL 5, 64 bit machine, protobuf 2.2 my deserialization works.
> > > > On Leopard 10.5.7 on a macbook it also works. (for both 32 bit and
> > > 64
> > > > bit versions)
> >
> > > > Above gcc: 4.0.1
> >
> > > > However, someone reported this crash on SnowLeopard (gcc4.2)
> >
> > > > I'm not sure why this happens. The crash appears to arise within the
> > > > protobuf calls.
> > > > Regards
> > > > Saptarshi
> >
> > > > Process:         R [34034]
> > > > Path:            /Applications/R64.app/Contents/MacOS/R
> > > > Identifier:      org.R-project.R
> > > > Version:         R 2.10.0 GUI 1.30 Leopard build 64-bit (5511)
> > > > Code Type:       X86-64 (Native)
> > > > Parent Process:  launchd [182]
> >
> > > > Date/Time:       2009-10-28 20:11:54.353 -0700
> > > > OS Version:      Mac OS X10.6.1 (10B504)
> > > > Report Version:  6
> >
> > > > Interval Since Last Report:          195786 sec
> > > > Crashes Since Last Report:           2
> > > > Per-App Interval Since Last Report:  1676 sec
> > > > Per-App Crashes Since Last Report:   1
> > > > Anonymous UUID:                      0A96FBCF-6045-4A38-
> > > > A8E5-619A52D23CE5
> >
> > > > Exception Type:  EXC_CRASH (SIGABRT)
> > > > Exception Codes: 0x0000000000000000, 0x0000000000000000
> > > > Crashed Thread:  0  Dispatch queue: com.apple.main-thread
> >
> > > > Application Specific Information:
> > > > abort() called
> >
> > > > Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
> > > > 0   libSystem.B.dylib                   0x00007fff836bdff6 __kill
> > > + 10
> > > > 1   libSystem.B.dylib                   0x00007fff8375f072 abort +
> > > 83
> > > > 2   libSystem.B.dylib                   0x00007fff83676095 free +
> > > 128
> > > > 3   libstdc++.6.dylib                   0x00007fff87aa71e8
> > > > std::string::reserve(unsigned long) + 90
> > > > 4   libstdc++.6.dylib                   0x00007fff87aa742b
> > > > std::string::append(char const*, unsigned long) + 127
> > > > 5   libprotobuf.4.dylib                 0x0000000116a0989c
> > > > google::protobuf::io::CodedInputStream::ReadString(std::string*,
> > > int)
> > > > + 236 (coded_stream.h:761)
> > > > 6   Rhipe.so                            0x000000011430909c
> > > > STRING
> >
> > >  ::MergePartialFromCodedStream
> > > (google::protobuf::io::CodedInputStream*)
> > > > + 396
> > > > 7   Rhipe.so                            0x00000001143099d8
> > > > REXP
> >
> > >  ::MergePartialFromCodedStream
> > > (google::protobuf::io::CodedInputStream*)
> > > > + 2104
> > > > 8   Rhipe.so                            0x0000000114309de8
> > > > REXP
> >
> > >  ::MergePartialFromCodedStream
> > > (google::protobuf::io::CodedInputStream*)
> > > > + 3144
> > > > 9   libprotobuf.4.dylib                 0x00000001169f893e
> > > > google::protobuf::MessageLite::ParseFromArray(void const*, int) + 62
> > > > (message_lite.cc:104)
> > > > 10  Rhipe.so                            0x000000011430d5d3
> > > > unserializeUsingPB + 99
> >
> > > > Saptarshi Guha | saptarshi.g...@gmail.com |
> http://www.stat.purdue.edu/~sguha
> > > > The use of anthropomorphic terminology when dealing with computing
> > > > systems
> > > > is a symptom of professional immaturity.
> > > >                -- Edsger W. Dijkstra
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to