2019-09-21 15:03 BST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002046NetSurf[All Projects] Generalpublic2017-10-04 10:28
Reporterbavison 
Assigned ToMichael Drake 
SeveritymajorReproducibilityunable to reproduce 
StatusclosedResolutionunable to reproduce 
PlatformRISC OSOSRISC OSOS VersionRISC OS 5.21
Product Version3.0 
Target VersionFixed in Version 
Summary0002046: Crash when opening PayPal
DescriptionI've had complaints from three users now about not being able to use PayPal from my website - one in person at the recent ROUGOL show, two by email. Their reports are terse:

"NetSurf on RISC OS failed to reach PayPal."

"Tried to pay for SystemDisc via Paypal but part way though after selecting Paypal nothing happens. Netsurf 1410"

In my own tests, I found that while this worked with version 3.0, it crashes with the latest dev version (1443) under RISC OS 5.21 - the backtrace indicates it failed an assert in treeview_redraw().



Steps To ReproduceSteps to reproduce, using the test version of my website (uses PayPal sandbox, you won't be charged):

http://devel.piccolosystems.com
Create an account
Click "CloneDisc" from left hand column
"Add to basket"
"Begin checkout"
Select "Paypal Payments" and "I agree"
"Proceed to payment"
- crash.
Additional InformationThe website uses more-or-less off-the-shelf versions of the Joomla CMS and the J2Store shopping basket plugin, so there are probably dozens of other websites out there with the same problem.
TagsNo tags attached.
Fixed in CI build #
Reported in CI build #
URL of problem page
Attached Files
  • zip file icon Logs.zip (46,723 bytes) 2013-12-11 11:15

-Relationships
+Relationships

-Notes
Michael Drake

~0000006

Michael Drake (administrator)

> Create an account

I've not recieved an account activation e-mail.

Can you provide the assert and backtrace details?

Michael
Michael Drake

~0000007

Michael Drake (administrator)

Ok, got the account activation e-mail, but I get right through to paypal without a crash. I'll need the assert/backtrace.

Cheers,

Michael
Michael Drake

~0000008

Michael Drake (administrator)

Here are two subtly different logs I have captured, but both showing a problem in treeview_redraw(). The second one is more obviously falling foul of an unaligned LDR, which is trapped by the CPU in my case because this is on an ARMv7 chip. Maybe it's trying to dereference an uninitialised pointer?

Ben
Michael Drake

~0000009

Michael Drake (administrator)

(1540.690000) content/fetchers/curl.c fetch_curl_stop 736: fetch 0x90cbd280, url 'https://www.paypal.com/en_US/i/scr/pixel.gif'

--> Tries to fetch image via https.

(1540.690000) desktop/sslcert_viewer.c sslcert_viewer_init 356: Building certificate viewer
(1540.690000) desktop/sslcert_viewer.c sslcert_viewer_init 382: Built certificate viewer
(1540.700000) riscos/wimp_event.c ro_gui_wimp_event_get_window 1630: Creating structure for window 0x202ffb99
(1540.700000) riscos/wimp_event.c ro_gui_wimp_event_get_window 1630: Creating structure for window 0x202ffcd9

--> Creates SSL certificate verification window
--> I'm assuming you click Accept, you don't say in the bug report?

(1541.550000) content/fetchers/curl.c fetch_curl_setup 369: fetch 0x908f0bf8, url ' https://www.paypal.com/en_US/i/scr/pixel.gif '

--> Continues fetch of image over https.

(1541.550000) riscos/sslcert.c ro_gui_cert_release_window 337: Releasing SSL data: 0x90cbd620
(1541.550000) riscos/wimp_event.c ro_gui_wimp_event_finalise 296: Removing all events for window 0x202ffcd9
(1541.560000) riscos/wimp_event.c ro_gui_wimp_event_finalise 296: Removing all events for window 0x202ffb99

--> Destroys SSL certificate verification window

(1541.560000) desktop/sslcert_viewer.c sslcert_viewer_fini 410: Finalising ssl certificate viewer
(1541.560000) desktop/sslcert_viewer.c sslcert_viewer_fini 423: Finalised ssl certificate viewer

--> Destroys SSL certificate verification window's treeview

"desktop/treeview.c", line 1685: treeview_redraw: Assertion failed: tree->root != NULL

--> Explodes...

Fatal signal received: Aborted
Stack backtrace:
Running thread 0x64e70c
( 656924) pc: 4b1df4 lr: b9de8 sp: 656928 __write_backtrace()
( 656950) pc: b9d68 lr: 4b263c sp: 656954 ^ro_gui_signal()
( 656978) pc: 4b262c lr: 4b2460 sp: 65697c __unixlib_exec_sig()
( 6569e0) pc: 4b1f18 lr: 4fa1e0 sp: 6569e4 __unixlib_raise_signal()
( 6569f0) pc: 4fa1c0 lr: 4ba228 sp: 6569f4 raise()
( 656a04) pc: 4ba1ec lr: a9214 sp: 656a08 abort()
( 656a20) pc: a91cc lr: 717ac sp: 656a24 __assert2()
( 656abc) pc: 710ec lr: 668a8 sp: 656ac0 treeview_redraw()
( 656ad0) pc: 6688c lr: 6d6e8 sp: 656ad4 sslcert_viewer_redraw()
( 656af8) pc: 6d63c lr: d753c sp: 656afc tree_draw()
( 656b38) pc: d7450 lr: d859c sp: 656b3c ^ro_treeview_redraw_loop()
( 656b54) pc: d84b0 lr: ddb28 sp: 656b58 ^ro_treeview_redraw()
( 656b68) pc: ddaf4 lr: b9050 sp: 656b6c ro_gui_wimp_event_redraw_window()
( 656e34) pc: b8d2c lr: 5fd44 sp: 656e38 gui_poll()

--> ...because something in gui_poll told us to redraw the SSL certificate verification window that got destroyed. It seems that the ro_treeview code doesn't even notice that the window is destroyed, and asks the core to redraw the destroyed treeview. The core treeview code asserts.

( 656e4c) pc: 5fd20 lr: bae54 sp: 656e50 netsurf_main_loop()
( 656fe8) pc: ba8f4 lr: 4c0a60 sp: 656fec main()

Michael
Michael Drake

~0000010

Michael Drake (administrator)

> I'm assuming you click Accept, you don't say in the bug report?

I couldn't remember whether I always got that window on every previous test, but at the moment, yes I'm having to click through it before I get to the "NetSurf has detected a serious error and must exit" error box. This happens irrespective of whether I choose Accept or Reject.

Ben
Vincent Sanders

~0000409

Vincent Sanders (administrator)

I believe this may have been caused by the same underlying issue as other bugs of using certificate information after it is valid. can you see if this is fixed in CI build 2019 please?
Dave Higton

~0001628

Dave Higton (developer)

It's no longer possible to access the URL that Ben specified, so it's not directly possible to check whether the issue has been fixed.
Dave Higton

~0001637

Dave Higton (developer)

Since the original URL is no longer available, and there are good reasons to believe that the problem has been fixed, I'm closing the case. We can always reopen it or open another one if necessary.
+Notes

-Issue History
Date Modified Username Field Change
2013-12-11 11:13 Michael Drake New Issue
2013-12-11 11:14 Michael Drake Note Added: 0000006
2013-12-11 11:14 Michael Drake Note Added: 0000007
2013-12-11 11:14 Michael Drake Note Added: 0000008
2013-12-11 11:15 Michael Drake File Added: Logs.zip
2013-12-11 11:16 Michael Drake Note Added: 0000009
2013-12-11 11:16 Michael Drake Note Added: 0000010
2013-12-11 11:52 Rob Kendrick Category NetSurf => General
2013-12-11 11:52 Rob Kendrick Description Updated View Revisions
2013-12-11 11:52 Rob Kendrick Steps to Reproduce Updated View Revisions
2013-12-11 11:52 Rob Kendrick Additional Information Updated View Revisions
2013-12-11 16:08 Vincent Sanders Assigned To => Michael Drake
2013-12-11 16:08 Vincent Sanders Status new => confirmed
2014-07-17 15:38 Vincent Sanders Note Added: 0000409
2014-07-17 15:38 Vincent Sanders Status confirmed => feedback
2014-07-17 15:38 Vincent Sanders Product Version => 3.0
2017-10-03 21:14 Dave Higton Note Added: 0001628
2017-10-04 10:28 Dave Higton Reproducibility always => unable to reproduce
2017-10-04 10:28 Dave Higton Status feedback => closed
2017-10-04 10:28 Dave Higton Resolution open => unable to reproduce
2017-10-04 10:28 Dave Higton Description Updated View Revisions
2017-10-04 10:28 Dave Higton Steps to Reproduce Updated View Revisions
2017-10-04 10:28 Dave Higton Note Added: 0001637
+Issue History